Сергей
migrations=backend-production-cli:master init-codebase=backend-production:master вот эти вот два это иниты
Rainbow
перестать использовать статичные теги образов
Rainbow
решение в лоб - git sha1 но так будет забиваться registry решение получше - sha1 от source.
Rainbow
т.е. migrations=backend-production-cli:$COMMIT_SHA
Сергей
вы меня не поняли. я же говорю, теги не статичные
Сергей
он не может обновить тег, потому что контейнер не в поде, контейнер находится в initContainers
Rainbow
backend-production-cli:master это не имя image?
Сергей
deployment.extensions/backend-web image updated error: unable to find container named "migrations" error: unable to find container named "init-codebase"
Сергей
backend-production-cli:master это не имя image?
это имя image, но он был backend-production-cli:kubernetes
Сергей
а теперь он master
Rainbow
- master это все же статический тег, он не будет менятся почти никогда - деплоить через set image - такое себе. kubectl apply или ещё что получше на порядок
Grigorii
ну а вообще стата есть по этому вопросу? или чисто личные предпочтения
вот есть картинка, правда опрос был за 2017 год: https://storage.googleapis.com/cdn.thenewstack.io/media/2017/08/d342f12f-networking-image.png в этой книге она же и другие: https://thenewstack.io/ebooks/kubernetes/state-of-kubernetes-ecosystem/ и вот прикольные цифры из Survey 2018 кому интересно: https://docs.google.com/presentation/d/1utT0K-u1nl2apXRo29GaBvRV1x7mFLeQSgpw8mI_nGM/edit#slide=id.g3882d9116d_2_127
Denis
у меня там в initContainers есть такие же образы как и в поде и он их не обновил соответственно. теперь я немного подвис как поменять им тег
Как вариант при деплое использовать шаблонизацию. В процессе CI что бы в yaml спецификацию на этапе деплоя подставлялись нужные значения для image tag
Сергей
А история деплоя при apply будет сохраняться?
Сергей
Или что нибудь типа того
Rainbow
Что за история? rollback?
Сергей
Какие вообще бестпрактисы по деплою?
Сергей
Denis
Или что нибудь типа того
Конечно. У тебя же есть набор репликасетов (по умолчанию 10)
Rainbow
Rainbow
Вся фишка k8s в apply
Сергей
Понял, спасибо за ответы
Rainbow
kubectl describe
Rainbow
Понял, спасибо за ответы
envsubst самое простое решение. Там куча тулов сверху может быть вроде helm
Rainbow
И никто не мешает сделать ruby k8s.rb | kubectl apply -f - или не rb, а js или другой яп, если прям не достаточно замены переменных.
Denis
Понял, спасибо за ответы
Если нужен будет кейс с хелмом, то пиши в личку. Подскажу чем смогу)
Сергей
У меня ksonnet
Rainbow
Без понятия кстати чем jsonnet лучше любого другого яп https://gist.github.com/alexesDev/7bf4a4921c42e92914d06633db5d6f48
Сергей
Да ничем он не лучше в принципе, просто заточен под структуру данных, но с возможностью писать код
Сергей
(Но он явно лучше го темплейтов)
Rainbow
Я пишу на jsonnet. Просто наблюдение
Rainbow
ЯП хуже только тем, что можно больше наломать дров. В jsonnet в сеть не пойдешь и тп
Салтыдык
#helmговно
Салтыдык
https://habr.com/ru/company/flant/blog/438814/
Misha
вопрос про cluster-autoscaler
Misha
а ему можно как-то сказать, чтобы он не гасил ноды, если на них есть хотя бы один под? не привязанный ни к какому деплойменту
Rainbow
@badfin миграции можно делать в ci/cd pipeline, это лучше initialContainer
Vadim
https://habr.com/ru/company/flant/blog/438814/
>Go-шаблоны имеют большой порог вхождения, однако никаких ограничений по возможностям и проблем с DRY у технологии нет.
Vadim
ох уж эти голанговцы с их особым определением DRY
Салтыдык
flant — рубисты, го они недавно завезли
Салтыдык
а на jsonnet проще описать деплой? Я просто helm-чарты устал плодить.
Yura
у них это в Notable Changes описано https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
Ivan
Всем привет! Подскажите по такому кейсу: Есть сервис, который надо запустить в нескольких экзеплярах, отличающихся значением одной переменной окружения. Я придумал только такой способ - поднимать каждый отдельным деплойментом с нужной переменной. Но что-то подозреваю, что возможно есть более грамотный способ...
Ivan
есть у кого какие идеи?
Ivan
в принципе эта переменная нужна для того, чтобы изнутри иметь уникальный идентификатор. если поднимать деплойментом несколько реплик, то им не назначается ли какая нибудь переменная окружения, разная для разных реплик?
⁠Maxim
MY_POD_NAME, MY_POD_IP? https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ ну а вообще да, хостнейм норм https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ в initContainers пример использования для server-id разных в MySQL (но тут sts)
Denis
Нужна postgres в k8s. Есть идея использовать patroni. Я правильно понимаю что там сейчас в качевстве Distributed Configuration Store может configmap kubernetes использовать? И как оно вообще, живет?работает?)
Ivan
да, сейчас попробую так )) спасибо ))
Tadeusz
мб stolon?
Denis
Ну тоже как варинт
Kirill
Всем привет. Можете посоветовать, как правильно подключить кластер к ceph? Я пробую по этой статье https://akomljen.com/using-existing-ceph-cluster-for-kubernetes-persistent-storage/ Хотел переместить деплой rbd-provision в kube-system, но, если я правильно понимаю, то я не могу настроить взаимодействие между неймспесами? Если я не прав, подскажите, пожалуйста. Спасибо
Stefan
кто-то сегодня деплоил кубер через kops в AWS? без конца эта хрень unexpected error during validation: error listing nodes: Get https://api.lalala.com/api/v1/nodes: dial tcp 205.178.189.130:443: i/o timeout когда хочу валидировать кластер, в даном случае хостед зона приватная, ранее пробовал и с публичной, практичесски идентичная ошибка сами кластера работают нормально, все поды системные тоже ок, раньше подобной херни не было кто-то наблюдал у себя такое?
Stefan
io мониторинг че говорит
никаких проблем не наблюдаю мониторинг кстати в этом же кластере, который не хочет валидироваться
Даня
я снова вернулся со своим оверхедовым кубером под 2 контейнера с джангой)
Даня
статику решил складывать на s3
Даня
а аппку держать в композе с nginx+uWSGI
Rainbow
я снова вернулся со своим оверхедовым кубером под 2 контейнера с джангой)
ansible и https://docs.ansible.com/ansible/latest/modules/docker_container_module.html мог бы тебя спасти
Grigorii
блин этот кубернетес как тяжелый наркотик подсядешь не него а потом хрен слезешь
Даня
для фронта я думаю будет достаточно бакета на s3+ cloudfront cdn для бекенда простенький t2.micro (там 2 несчастных аппки) (nginx+uswgi все это с доступом по https)
Rainbow
блин этот кубернетес как тяжелый наркотик подсядешь не него а потом хрен слезешь
я каждый месяц тут всем обещаю, что съезжаю, а уже операторы понемногу пилю
Даня
осталась проблема с сертификатом для бекенда, но я думаю чет прикручу туда
Grigorii
мне вот тут тоже нужно было pet project развернуть на одной маашине думаю поставлю композ, зачем мне куб в итоге все равно куб поставил, удобно потому что и привык(
Даня
ыгыгы
Ale
Rainbow
ansible не удобно, когда много всего - медленно выходит.
Даня
та ну, я до сих пор не понял зачем они там собирают логи и метрики, если нет графаны и кибаны с эластиком))))
Даня
так хоть в aws есть cloudwatch
Grigorii
ну тут не очень. Я такое все же ansible разворачиваю.
ну хотя бы ради kubectl который с моей машины работает