@kubernetes_ru

Страница 946 из 958
Nata
24.10.2018
12:38:11
из нормальных вариантов я вижу только sed (через entrypoint)
пока тупо через docker entrypoint и сделала, но это вообще не круто :(

Айбелив
24.10.2018
12:38:39
это всмысле valuefrom status.podIP ? я так и не нашла, как его впихнуть в конфиг мап. Ибо через sed я уже не могу, так как на этот момент оно уже ReadOnly
монтируй конфиг в одно место, заменяй IP седом и сохраняй в другое, грузись из другого места. Если конфиг-релоада нет, то должно работать

Andrey
24.10.2018
12:39:33
это всмысле valuefrom status.podIP ? я так и не нашла, как его впихнуть в конфиг мап. Ибо через sed я уже не могу, так как на этот момент оно уже ReadOnly
Увы, никак, но таков идейно правильный способ, предусмотренный девелоперами k8s. Можно, кстати, использовать инит-контейнер, который будет брать конфигмап и подставлять туда значения с Downward API, записывая результат в какой-нибудь emptyDir, который будет маунтить уже сам контейнер с этой аппликухой

Google
Nata
24.10.2018
12:40:06
Andor
24.10.2018
12:40:27
это какая-то внутренняя лажа?

Nata
24.10.2018
12:41:25
Andor
24.10.2018
12:41:40
mosquitto?

Nata
24.10.2018
12:41:41
он в кластер не собирается без костыля

нэ, vernemq

я на него сделала красивый чарт, вынесла конфиги из образа на configmap ииии оно кривое

Andor
24.10.2018
12:42:51
нэ, vernemq
listener.vmq.clustering = 0.0.0.0:44053

Nata
24.10.2018
12:42:55
дада

Andor
24.10.2018
12:42:57
вот прям пример из доки

Nata
24.10.2018
12:43:02
в доке так и есть

Google
Andor
24.10.2018
12:43:21
и чо, прямо так не пашет?

Andrey
24.10.2018
12:43:28
и назвать это всё sed-container)
ящитаю, шо это лучше, чем в энтрипоинте костылить

Nata
24.10.2018
12:43:44
пашет, каждая нода считает себя кластером. А если podIP - то они в кластер соединяются норм

Andor
24.10.2018
12:43:59
эээ

а как они друг друга находят?

Айбелив
24.10.2018
12:44:07
ящитаю, шо это лучше, чем в энтрипоинте костылить
целый контейнер для замены ip в конфиге? Не слишком сурово ли?

Andrey
24.10.2018
12:44:30
целый контейнер для замены ip в конфиге? Не слишком сурово ли?
Не думаю, какой-нибудь бизибокс самое оно

Nata
24.10.2018
12:45:28
вообще-то, они должны находить себя по именам, я думала. но чет почему-то конфиги работает\не работает отличались только IP

Andor
24.10.2018
12:45:50
у тебя не стейтфулсет, да?

Nata
24.10.2018
12:46:27
стейтфулсет

Andor
24.10.2018
12:46:28
про куки не забыла?

Nata
24.10.2018
12:46:51
ммммм

Andor
24.10.2018
12:47:22
кажется они в кластер могут собираться не по параметрам конфига, а в рантайме через vmq-admin cluster join discovery-node=<OtherClusterNode>

kvaps
24.10.2018
12:47:40
целый контейнер для замены ip в конфиге? Не слишком сурово ли?
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей

Andor
24.10.2018
12:48:09
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей
не, лучше нормально приложение сконфигурить, а не костылики подкладывать через инит

в данном конкретном кейсе

Andrey
24.10.2018
12:48:45
Ну мы только сейчас узнали, что все наверное не так плохо

Nata
24.10.2018
12:48:48
echo "-eval \"vmq_server_cmd:node_join('VerneMQ@${kube_pod_name}.${VERNEMQ_KUBERNETES_SUBDOMAIN}.${DOCKER_VERNEMQ_KUBERNETES_NAMESPACE}.svc.cluster.local')\""

Andor
24.10.2018
12:49:04
wat

Nata
24.10.2018
12:49:17
это из докерфайла, поидее оно в принципе типа джойнит по имени

Google
Andor
24.10.2018
12:49:20
если у тебя стейтфулсет, то ты заранее знаешь адреса соседних подов

Айбелив
24.10.2018
12:49:20
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей
да это-то понятно, просто странно использовать init-контейнеры там, где они не нужны. С другой стороны, если нет своего registry для хранения нормальных образов (допиленных), то вариант.

Andor
24.10.2018
12:49:24
хотя бы некоторых

Nata
24.10.2018
12:49:24
*официального

Nata
24.10.2018
12:49:44
https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh

там и костыль с седом в образе

Andor
24.10.2018
12:50:01
IP_ADDRESS=$(ip -4 addr show eth0 | grep -oP "(?<=inet).*(?=/)"| sed -e "s/^[[:space:]]*//" | tail -n 1)

https://i.ytimg.com/vi/Tnod9vtB4xA/hqdefault.jpg

Айбелив
24.10.2018
12:50:45
Andrey
24.10.2018
12:51:07
Andor
24.10.2018
12:51:38
https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh
кажется ты можешь передать DOCKER_VERNEMQ_NODENAME в контейнер чтобы было не слишком дерьмово

Айбелив
24.10.2018
12:51:53
чем оно сурово-то?
ну я даже не знаю как ответить)

может проще у k8s'а спросить IP, чем искать интерфейс и выпаршивать его?

Andor
24.10.2018
12:52:32
не надо ip, у нас тут стейтфулсет

можно просто имя первого пода передать в DOCKER_VERNEMQ_DISCOVERY_NODE кажется

и дальше оно само

в rabbitmq например есть плагин autocluster, который поддерживает кубеня

https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh
https://github.com/nmatsui/kubernetes-vernemq/blob/master/vernemq-cluster.yaml это видела?

Григорий
24.10.2018
12:54:32
мля, кубернетис классно решает проблемы, которые сам же и создает.

Google
Andor
24.10.2018
12:54:51
да

Nata
24.10.2018
12:54:53
можно просто имя первого пода передать в DOCKER_VERNEMQ_DISCOVERY_NODE кажется
можно попробовать, DOCKER_VERNEMQ_DISCOVERY_KUBERNETES я это крутила

я видела nmatsui, вообще прикольно, ни pv, конфиги как были в образ зарыты так и остались

Andor
24.10.2018
12:56:17
эта хрень в кластер собирается или нет?

если собирается, то я бы просто накопипастил оттуда

Nata
24.10.2018
12:56:47
да, если убрать конфигмап и оставить sed с IP_ADDRESS

Andor
24.10.2018
12:57:01
ааа, вон в чём беда

костыль с седом срабатывает

Nata
24.10.2018
12:58:14
да, в образе. я и хотела вынести из образа, сделать configmap и не ответвлять образ для замены других параметров.

Andor
24.10.2018
12:59:25
kube_pod_names=$(curl -X GET $insecure --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt https://kubernetes.default.svc.cluster.local/api/v1/namespaces/$DOCKER_VERNEMQ_KUBERNETES_NAMESPACE/pods?labelSelector=app=$DOCKER_VERNEMQ_KUBERNETES_APP_LABEL -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | jq '.items[].spec.hostname' | sed 's/"//g' | tr '\n' ' ')

чуваки ваще молодцы

на такие костыли мало кто осмеливается

ну или подмени entrypoint

Григорий
24.10.2018
13:00:29
признайтесь, с кубернетисом в продакшене вы спите спокойно?)

Alexey
24.10.2018
13:02:01
Google
bebebe
24.10.2018
13:03:16
или даже не про helm upgrade <release_name> <chart_name> -f /path/to/new.values?

Nata
24.10.2018
13:03:45
нэт

Григорий
24.10.2018
13:05:10
нет
я вот тоже заметил, что с тех пор как начал его изучать, так сразу почти кошмары начала сниться

Andrey
24.10.2018
13:06:43
мне вот интересно, у всех gce-ingress вызывает такое же отвращение, как у меня? Уже замучался с этой какашкой

bebebe
24.10.2018
13:07:00
можно удалить configmap и сделать helm upgrade --reuse-values - конфигмапа пересоздастся

Nata
24.10.2018
13:13:58
ну да, короче, с самой оптимальной конфигурации но без костыля с седом, они собираются примерно так: | Node |Running| +---------------------------------------------------+-------+ |VerneMQ@vernemq-0.vernemq.vernemq.svc.cluster.local| true | |VerneMQ@vernemq-1.vernemq.vernemq.svc.cluster.local| false | |VerneMQ@vernemq-2.vernemq.vernemq.svc.cluster.local| false |

а костыль с седом и сразу оп и красиво все true )

bebebe
24.10.2018
13:14:59
хватит sed'ить kubernetes!

Nata
24.10.2018
13:22:42
хватит sed'ить kubernetes!
седили, седим и будем седить ?

bebebe
24.10.2018
13:23:04
kvaps
24.10.2018
13:28:29
IP_ADDRESS=$(ip -4 addr show eth0 | grep -oP "(?<=inet).*(?=/)"| sed -e "s/^[[:space:]]*//" | tail -n 1)
чтож так сложно та, когда можно просто: ip -o -4 addr show eth0 | grep -oP -m1 '(?<=inet )[^ /]*'

Nata
24.10.2018
13:31:16
ну кстати нормально получилось, сделала маунт cm в левое место, пересобрала образ с заменой конфига из левого места и всё прям огонь работает у нас в 2003

Nata
24.10.2018
13:35:12
вот сейчас не понятно

Andor
24.10.2018
13:35:39
ты можешь подложить конфигмапой скрипт который запускать вместо родного инита

бонус: использование родного контейнера

Nata
24.10.2018
13:36:52
ты можешь подложить конфигмапой скрипт который запускать вместо родного инита
вот ты знаешь, добрый человек, я об этом не подумала. Точно.

спасибо

Страница 946 из 958