Oleg
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
да, походу это и есть весь ответ. спасибо
Andrey
собрали общими усилями полный ответ 🙂
Konstantin
Как всегда приходится доки читать, боль 😭
Anton
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
как после этого форсить дальше апдейт
Andrey
Как всегда приходится доки читать, боль 😭
доки читать не боль, боль начинается когда лезешь в код и спецификации :)
Oleg
👌😎 (тут есть какой-то бот, который убивает сообщения из эмодзи?)
The
Подскажите пожалуйста, как поменять стратегию выбора бэкенда, если у сервиса несколько эндпоинтов? Сейчас рандом
Sergey
😆
Sergey
не удаляет
Lucky SB
как после этого форсить дальше апдейт
задеплоить sts без .spec.updateStrategy.rollingUpdate.partition
Vadim
👌😎 (тут есть какой-то бот, который убивает сообщения из эмодзи?)
Есть, если в сообщении только эмодзи от новичков
Oleg
а, не, нет его тут. ИНКВИЗИЦИЯ что ли?)
Vadim
это какой бот умеет? combot ?
https://github.com/vrutkovs/ecasbot
Anton
задеплоить sts без .spec.updateStrategy.rollingUpdate.partition
думаю о том, как это можно было бы применить. чет не могу придумать
Anonymous
Коллеги, а подскажите, пожалуйста с небольшим вопросом. Есть у меня деплоймент, в котором есть переменная из конфигмапа envFrom: - configMapRef: name: front-env И при обновлении конфигмапа переменные окружения в контейнере не обновляются. Только если рестартануть/пересоздать контейнер. Почему так?
Andrei
добавьте в выкатку если у вас helm, если нет, то смысл понятен annotations: checksum/configmap: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} В отдельных случаях можно использовать configmap-reloader Ответ на "почему", потому что сам deployment не изменяется
Maxim
кажется, автоматически обновляются только конфигмапы, которые приатачены как волюмы. относительно env vars такого нету, нужно прикручивать что-то дополнительно
Andrei
Да, верно, данные в каталоге обновляются, но перезапускать ничего никто не будет без доп пинка
The
service.spec.sessionAffinity ?
Не совсем то - первый реквест выберет бэкенд рандомно, последующие от клиента уже привяжутся
Andrei
Вообще, имхо, это костыли. Под должен быть неизменяемым. Хотите новые значения в переменных, сделайте новую выкатку.
Andor
https://github.com/mfojtik/k8s-trigger-controller
воу-воу-воу, это вообще законно?
Sergey
так завезли же в кубер операторов всяких, пили что хочешь)
Andor
то есть configmap-reloader больше не нужен?
Maxim
https://github.com/mfojtik/k8s-trigger-controller
как-то это выгдядит странно, втягивать дополнительную, достаточно большую сущность для решения достаточно тривиальной задачи.
Maxim
та вообще о жизни)
Vadim
то есть configmap-reloader больше не нужен?
если приложение умеет в sighup то и релоадер сгодится
Andor
ну с контроллером мне больше нравится
Vadim
как-то это выгдядит странно, втягивать дополнительную, достаточно большую сущность для решения достаточно тривиальной задачи.
у этой "тривиальной задачи" есть куча corner cases если впилить авторелоад по изменению секрета\конфигмапа
Sergey
Весьма подробный туториал по использованию секретов Vault в Kubernetes от Johann Gyger. http://amp.gs/UiBT #vault #kubernetes
Anonymous
Да, верно, данные в каталоге обновляются, но перезапускать ничего никто не будет без доп пинка
Вот я тоже так понял, что работает только с томами. Я почему-то думал, что и если как переменные окружения подгружаешь. Мне перезапускать ничего не надо. У меня есть приложение, которое почти не меняется. И рядом лежат всякие картинки и прочее, которые регулярно меняются. И нужно, чтобы приложение знало какую версию файлов брать. Ориентируется оно по переменной окружения (раз в какое-то время считывает его). Дополнительных сущностей вводить не хочется - проще рестартовать контейнер. Но думал обойтись без этого :)
Andor
Ориентируется оно по переменной окружения (раз в какое-то время считывает его).это шутка?
Andrei
Весьма подробный туториал по использованию секретов Vault в Kubernetes от Johann Gyger. http://amp.gs/UiBT #vault #kubernetes
Что-то не очень гайд. Нет ни про ha, ни про подводные камни с отвалом бэкенда vault, ни с ремаркой на тип секретов с версиями/без. Я заюзал стэк bank-vaults от banzai cloud, удобно
Anonymous
Ориентируется оно по переменной окружения (раз в какое-то время считывает его).это шутка?
Неа. Не моя придумка. А что такого плохого? Если переменной нет - то просто последнюю версию берет и все ок.
inqfen
Господа, пришлось тут заюзать helm
inqfen
Он умеет типа как терраформ оверрайдить переменные файлами?
Tadeusz
парни, нужен свежий взгляд со стороны
Tadeusz
у меня есть сервисы patroni и rabbitmq - обоим нужен и haproxy и service discovery (etcd/consul/etc), так вот вопрос: 1. независимые сервисы (patroni + patroni_haproxy + patroni_etcd и rabbitmq + rabbitmq_haproxy + rabbitmq_consul/etcd) 2. единый haproxy + etcd/consul и проксировать уже 2 сервиса (patroni и rabbitmq) сразу ими же? второй вариант он как бы логичнее (на первый взгляд), но первый вот предполагает "независимость" сервисов друг от друга
inqfen
Типа в Values.yaml foo: bar a: b в env-values.yaml foo: baar
Tadeusz
но и patroni и rabbitmq должны взаимодействовать с одним и тем же "app"
Lev
Типа в Values.yaml foo: bar a: b в env-values.yaml foo: baar
и это не так сложно проверить, примерно, по скорости, как зайти в чат и спросить)
inqfen
Сейчас вообще до тебя пойду и так спрашивать буду)
inqfen
С улицы в окно орать
Tadeusz
Оба умеют кубер юзать для сервис дискавери
на данном этапе у меня нет k8s, но он в _ближайших_ планах)
Andor
Тогда ой
Tadeusz
просто мне не совсем понятно, как при выкатке (обновлении) новых версий patroni/rabbitmq будут реагировать haproxy/etcd
Anonymous
И как вы меняете переменные окружения для уже запущенного процесса?
А чего процессу то будет? Это же как есть переменная VAR1=value И сделать export VAR1=another_value А само приложение уже перечитает значение переменной. Была идея обновлять конфигмап, с которого эта переменная окружения загружается. Идея не работает. С файлом проще.
Andor
Или оно постоянно перезапускается шеллом?
Евгений
на данном этапе у меня нет k8s, но он в _ближайших_ планах)
Сначала завези сабж, не нужно плодить одинаковые сущности. k8s это комплексное расширяемое решение для оркестрации и service discovery
Tadeusz
понял, пойду по второму варианту)
Anonymous
Кто этот export сделает и откуда приложение об этом узнает?
Вооо! В том то и суть, что я думал, что если переменные окружения заданы через конфигмап, то при обновлении конфигмапа они обновятся тоже. как в случае, когда конфигмап как том подключен. Точно тем же кубелетом, что и при маунте. А приложению то чего? Оно то ли при каждом запросе, то ли раз в сколько-то времени (не суть) смотрит значение переменной и обновляет его, если нужно.
Andor
Шелл-скрипт через export?
Andor
угу
Anonymous
Шелл-скрипт через export?
нене. Зачем шелл скрипт. есть приложение оно состоит из деплоймента и конфигмапа (сервисы/секреты не трогаем). В конфигмапе есть одна переменная. В деплойменте эта переменная прописана так: envFrom: - configMapRef: name: front-env У меня была мысль что механизм https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#mounted-configmaps-are-updated-automatically Работает в целом с конфигмапами. Оновил значение в конфигмапе -> он обновился -> кубелет обновил значение переменной окружения. Ну да, была наивная мысль, что кубелет умеет так делать. Без всяких configmap-reload и т.п. А так то ес ть разные варианты - я эту переменную могу задать в деплойменте и обновлять деплоймент при изменении - можно обновлять конфигмап и рестартовать под, чтобы он новые значения взял - как подсказали, маунтить как файл и читать из файла
Andor
а, ты думал что кубер тебе порестартит приложение при изменении конфигмапы сам?
Andor
если из этой конфигмапы переменные в приложение кинуты
Andor
да, было бы удобненько
Anonymous
Ага :)
Vadim
нене. Зачем шелл скрипт. есть приложение оно состоит из деплоймента и конфигмапа (сервисы/секреты не трогаем). В конфигмапе есть одна переменная. В деплойменте эта переменная прописана так: envFrom: - configMapRef: name: front-env У меня была мысль что механизм https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#mounted-configmaps-are-updated-automatically Работает в целом с конфигмапами. Оновил значение в конфигмапе -> он обновился -> кубелет обновил значение переменной окружения. Ну да, была наивная мысль, что кубелет умеет так делать. Без всяких configmap-reload и т.п. А так то ес ть разные варианты - я эту переменную могу задать в деплойменте и обновлять деплоймент при изменении - можно обновлять конфигмап и рестартовать под, чтобы он новые значения взял - как подсказали, маунтить как файл и читать из файла
кубелет умеет так делать, но он не станет лезть в бегующие процессы и менять там env var
Anonymous
А счастье было так близко :)
Light Mushroom
Доброго времени суток! s3 к ecs кто-то подключал?
Andor
нет, никто
Andor
это невозможно
𝚔𝚟𝚊𝚙𝚜
Написал статью про LINSTOR, возможно кому-то интересно будет