TGViewer
DevOps не горит DevOps не горит @devops_not_burn · 505 subscribers
Post #20 516
Всех с пятничкой, коллеги ^_^

Немного ранее я рассказывал про свои приключения с обновлением кластера k8s с elasticsearch на борту
Пришло время рассказать как мы обновляем кластера с нашими backend-сервисами
Какие у нас есть особенности:
- у нас есть возможность делать кластера достаточно большими, не только на момент обновления
- все backend-сервисы у нас stateless (они не хранят свое состояние), даже если у них есть RabbitMQ, Redis, etc. - об этом мы заранее договорились с разработкой. Если нужно какое то хранение состояния (база, очередь), все необходимое выносится за пределы кластера k8s и берется managed в облаке (кстати у нас Ya.cloud)

Дизайн кластеров:
- мультимастер - мастера размазаны в разные зоны доступности (A,B,C)
- минимум 2 нод группы для приложений в зонах A и B с автоскейлингом
- может быть дополнительная нод группа для “определенных” задач

Первое с чего мы всегда начинаем, это проверка “что у нас там с API k8s? нет ли чего то удаленного в API?”

Для этого мы используем утилитку pluto от FairwindsOps
После проверки:
- Все хорошо - можно смело обновляться
- Есть какие то замечания - обновляем какие то компоненты, в общем решаем проблемы с API

Обновление происходит в несколько этапов:

1 - обновляем мастера на +1 версию
2 - добавляем новую нод группу с +1 версией в нужной нам зоне (A или B )
3 - “кордоним” все ноды в кластере
4 - первую/обновляемую нод группу “фиксируем” по размеру, что бы не начали создаваться новые ноды со старой версией k8s (напоминаю что у нас автоскейлинг)
5 - “дрейним” первую/обновляемую нод группу
6 - проверяем по телеметрии что все ок и все работает
7 - при необходимости - повторяем

Не раз уже делаем так и все ок ^_^

PS - RMQ, Redis, etc. внутри k8s у нас в кластерном режиме и PV. Но относимся мы к ним все равно как к стейтлесс сервисам. И как мы знаем (надеюсь что вы знаете), PV не реплицируются между зонами я Ya.Cloud, по этому мы обновляем зону за зоной, что бы “подики” могли примонтировать свои PV.

PSS - однажды я вам расскажу про то как мы меняли сетевой плагин в кластере, спойлер - ухххх было весело =)
  • 👍 10
  • 🔥 4
More from @devops_not_burn
  1. Sep 22, 2026Коллеги, всем привет! =) Открываю рубрику «Мама, твой сын вайб-кодер!» =) У меня давно в г…
  2. Sep 18, 2026Коллеги, всем привет! =) Сегодня продолжаем записывать наш DevOops Podcast, внезапно! =) В…
  3. Sep 14, 2026DevOops 2026 Коллеги, всем привет! =) Возможно, вы знаете, что я член программного комитет…
  4. Sep 11, 2026Обновление k8s 1.33⇒1.34 Коллеги, всем привет! =) По старой доброй традиции раз в квартал…
  5. Aug 26, 2026Коллеги, всем привет! =) На подходе очередной выпуск DevOops Podcast, к слову, пятый по сч…
  6. Aug 19, 2026Коллеги, всем привет! =) В продолжение темы про обновление Harbor и про хранение артефакто…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →