
Nata
24.10.2018
12:38:11

Айбелив
24.10.2018
12:38:39

Andor
24.10.2018
12:38:53

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:11

Айбелив
24.10.2018
12:41:19

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

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

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

Andor
24.10.2018
12:43:59
эээ
а как они друг друга находят?

Айбелив
24.10.2018
12:44:07

Andrey
24.10.2018
12:44:30

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

Andor
24.10.2018
12:48:09
в данном конкретном кейсе

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

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

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

Andor
24.10.2018
12:49:38

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

Айбелив
24.10.2018
12:51:53
может проще у k8s'а спросить IP, чем искать интерфейс и выпаршивать его?

Andor
24.10.2018
12:52:32
не надо ip, у нас тут стейтфулсет
можно просто имя первого пода передать в DOCKER_VERNEMQ_DISCOVERY_NODE кажется
и дальше оно само
в rabbitmq например есть плагин autocluster, который поддерживает кубеня

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

Google

Andor
24.10.2018
12:54:51
да

Nata
24.10.2018
12:54:53
я видела 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
признайтесь, с кубернетисом в продакшене вы спите спокойно?)

Nata
24.10.2018
13:00:59

Alexey
24.10.2018
13:02:01

bebebe
24.10.2018
13:02:26

Google

Andor
24.10.2018
13:03:09

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

bebebe
24.10.2018
13:23:04

kvaps
24.10.2018
13:28:29

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

Айбелив
24.10.2018
13:32:42

Andor
24.10.2018
13:33:00

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

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

Nata
24.10.2018
13:36:52
спасибо