Как работает rolling update
Вопрос
Расскажи, как Deployment выкатывает новую версию и как сделать это без простоя.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Изменение `spec.template` создаёт новый ReplicaSet, старый постепенно уменьшается
`maxSurge` и `maxUnavailable` задают темп и запас; `maxUnavailable: 0` сохраняет ёмкость
Готовность определяет readiness probe: без неё неготовые поды получат трафик
Graceful shutdown: SIGTERM, `preStop` пауза, `terminationGracePeriodSeconds`
Совместимость версий: старая и новая работают одновременно, миграции обратно совместимые
Контроль: `rollout status`, `progressDeadlineSeconds`, откат `rollout undo`
Что могут спросить следом
- Как сделать канареечный релиз?
- Что будет, если новая версия не проходит readiness?
- Как совместить rolling update и миграции базы?
Разбор
Когда меняется шаблон пода, Deployment создаёт новый ReplicaSet и двигает реплики между старым и новым. Темп задают maxSurge, сколько подов можно добавить сверх нормы, и maxUnavailable, сколько может отсутствовать. Для обновления без потери ёмкости ставят maxUnavailable: 0 и maxSurge: 1 или 25%. Ключевая часть: readiness probe. Новый под считается доступным только когда проходит проверку, и только тогда удаляется следующий старый. Если новая версия не готовится, раскатка застрянет, а после progressDeadlineSeconds Deployment получит условие о провале, и старые поды продолжат обслуживать трафик. С другой стороны нужна корректная остановка: приложение обрабатывает SIGTERM, а preStop с короткой паузой даёт балансировщикам убрать под из ротации. И важно помнить, что во время раскатки две версии работают одновременно, поэтому API и схема базы должны быть совместимы в обе стороны: сначала расширяющая миграция, потом код, потом чистка. Следить через rollout status, откатывать rollout undo.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.