Ответ вслух Junior Pod и Deployment обновлено

Какие бывают контроллеры

Вопрос

Какие контроллеры для запуска подов есть в Kubernetes и когда какой использовать?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Для обычного stateless-сервиса, API или фронтенда, берут Deployment: он держит нужное число реплик через ReplicaSet, умеет rolling update и откаты.

Что должно прозвучать в ответе

  • 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 ошибок.

Термины по теме