Получить доступ

Как Deployment выполняет обновление и как откатить неудачную версию?

MiddleKubernetes
Ещё спрашивают так:
  • Что такое maxSurge и maxUnavailable?
  • Как сделать выкатку без простоя в Kubernetes?
Коротко

Стратегия по умолчанию — RollingUpdate: создаётся новый ReplicaSet, поды постепенно заменяются. maxSurge — сколько подов сверх нужного числа можно поднять, maxUnavailable — сколько можно потерять во время обновления. Новый под получает трафик только после readiness. Откат: kubectl rollout undo deployment/orders — возвращается предыдущий ReplicaSet (хранятся revisionHistoryLimit ревизий).

  • maxUnavailable: 0 и maxSurge: 1 — обновление без снижения ёмкости
  • Без readiness-пробы трафик пойдёт в неготовые поды — ошибки при каждой выкатке
  • progressDeadlineSeconds — когда признать выкатку зависшей

А ещё Старая и новая версии работают одновременно — API и схема БД должны быть совместимы

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Ход выкатки (3 реплики, maxSurge 1, maxUnavailable 0):

  1. Поднимается 1 новый под, ждём readiness.
  2. Удаляется 1 старый.
  3. Повторяется, пока все поды не станут новыми.

Команды:

kubectl set image deployment/orders app=orders:1.4.3
kubectl rollout status deployment/orders
kubectl rollout history deployment/orders
kubectl rollout undo deployment/orders --to-revision=4

Ограничения rolling update: нет автоматического отката по метрикам ошибок, трафик переключается пропорционально числу подов. Для canary и автоматического анализа используют Argo Rollouts или Flagger.

Стратегия Recreate — убить все старые, потом поднять новые: простой, но нужна, когда две версии одновременно работать не могут.

Откат в GitOps делается откатом коммита в репозитории конфигурации, иначе контроллер вернёт «сломанное» желаемое состояние.

Что хотят услышать

  • Механика RollingUpdate, maxSurge и maxUnavailable.
  • Роль readiness.
  • Откат и ограничения стратегии.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем