Какие бывают контроллеры
Вопрос
Какие контроллеры для запуска подов есть в Kubernetes и когда какой использовать?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Deployment: stateless-сервисы, rolling update и откаты
StatefulSet: стабильные имена, порядок запуска и собственный том на реплику (базы, брокеры)
DaemonSet: по поду на узел (агенты логов и метрик, сетевые плагины)
Job: задача до успешного завершения с повторами
CronJob: Job по расписанию, `concurrencyPolicy`
ReplicaSet напрямую не используют, им управляет Deployment
Что могут спросить следом
- Можно ли запустить базу в Deployment?
- Как не допустить наложения запусков CronJob?
Разбор
Для обычного stateless-сервиса, API или фронтенда, берут Deployment: он держит нужное число реплик через ReplicaSet, умеет rolling update и откаты. Для приложений с состоянием, где важны идентичность и свой диск у каждой реплики, базы, Kafka, ZooKeeper, есть StatefulSet: поды получают стабильные имена db-0, db-1, запускаются по порядку и каждому создаётся свой PVC. DaemonSet ставит по поду на каждый узел, это агенты логов, мониторинга, CNI. Job выполняет задачу до успешного завершения с повторами, например миграцию или пересчёт. CronJob создаёт Job по расписанию; для долгих задач ставят concurrencyPolicy: Forbid, чтобы запуски не накладывались. ReplicaSet сам по себе почти не используют, это деталь реализации Deployment. Голые поды в проде не создают, потому что их никто не восстановит.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.