Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти
←К подготовке по вакансии←К теме KubernetesВсе вопросы
KubernetesJuniorТеория

Чем Deployment отличается от ReplicaSet, и зачем нужны оба?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

ReplicaSet поддерживает заданное число Pod, а Deployment управляет ReplicaSet как версиями rollout: создает новые ReplicaSet, масштабирует старые и новые, хранит историю и позволяет rollback.

Пример

кода

kubectl create deployment api --image=nginx:1.27 --replicas=3
kubectl set image deployment/api nginx=nginx:1.28
kubectl rollout status deployment/api
kubectl get rs -l app=api
kubectl rollout undo deployment/api

Суть

ReplicaSet отвечает за простую инварианту: должно быть N Pod, подходящих под selector. Deployment находится уровнем выше. Он описывает rollout приложения: template Pod, количество реплик, стратегию обновления, историю ревизий и rollback. В production обычно создают Deployment, а ReplicaSet появляется как управляемый дочерний объект. Поэтому вопрос не про два равноправных способа деплоя, а про иерархию контроллеров.

Как работает

Когда меняется template в Deployment, например image tag, Deployment controller создает новый ReplicaSet с новым pod-template-hash. Затем он постепенно увеличивает новый ReplicaSet и уменьшает старый согласно стратегии RollingUpdate, maxUnavailable и maxSurge. Старые ReplicaSet не удаляются сразу: они нужны для истории и rollback. ReplicaSet сам не знает про rollout и ревизии; если управлять им напрямую, можно поддерживать реплики, но нельзя получить штатный rolling update.

Подводные камни

  • Создавать ReplicaSet напрямую для обычного сервиса. Это лишает вас стандартного rollout и rollback.
  • Менять selector Deployment после создания. Он должен стабильно совпадать с labels template, иначе контроллер потеряет связь с Pod.
  • Думать, что каждый apply создает новый ReplicaSet. Новая ревизия появляется при изменении Pod template, а не любых metadata Deployment.

Что отличает сильный ответ

Хороший ответ объясняет ownership chain: Deployment владеет ReplicaSet, ReplicaSet владеет Pod. На follow-up часто спрашивают maxSurge, maxUnavailable, progressDeadlineSeconds и почему rollout может зависнуть на readinessProbe.

Частые вопросы на собеседовании

  • Зачем нужны requests и limits для CPU и памяти? Что будет, если их не задать или задать только limits?
  • Что такое ServiceAccount, Role, ClusterRole, RoleBinding и ClusterRoleBinding? Как они связаны?
  • Сервис не доступен, хотя поды Running и Ready. Как найдёшь, где разрыв?
  • Что такое securityContext? Зачем нужны runAsNonRoot, readOnlyRootFilesystem и drop capabilities?

Типичные ошибки

  • Говорить, что Deployment просто синоним ReplicaSet
  • Не знать про rollback
  • Не объяснять роль Pod template hash

Что проверяет интервьюер

  • Понимает иерархию контроллеров
  • Знает rolling update
  • Умеет объяснить rollback

Как вы знаете этот вопрос?

Проверить себя по теме Kubernetes →

Источники

  • https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
  • https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
←Предыдущий вопросИз чего состоит control plane Kubernetes и за что отвечают api-server, etcd, scheduler и controller-manager?Следующий вопрос→Какие стратегии деплоя поддерживает Deployment: RollingUpdate, Recreate? Как реализовать canary или blue/green?

Связанные темы

Kuberneteskubectlrelease-managementYAML

Вакансии с этим навыком

Kubernetes вакансии
  • Sr. Software Development Engineer
  • Engineering Manager, Copilot
  • Sr. Application Security Engineer
  • Sr. Full Stack Engineer, Launch Software
  • Senior Sales Systems Engineer (South Atlantic)

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансияв ленте Talanto
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью
Разместить вакансию

Популярные направления

Все подборки
  • Backend вакансии
  • Python
  • DevOps вакансии
  • Бизнес-аналитик
  • QA вакансии
  • Продакт-менеджер

Разработка

  • Frontend вакансии
  • Fullstack вакансии
  • Mobile вакансии
  • iOS
  • Android
  • AI вакансии

По стеку

  • Java
  • Go
  • Node.js
  • Kotlin
  • Rust
  • .NET
  • C#
  • C++
  • PHP

DevOps и инфраструктура

  • CI/CD
  • Облачные технологии
  • Terraform / IaC
  • Linux-инфраструктура
  • Kubernetes
  • Мониторинг и Observability
  • Кибербезопасность
  • SRE

Аналитика и данные

  • Аналитик данных
  • Системный аналитик
  • Инженер данных
  • Data Scientist

Другие направления

  • Ручное тестирование
  • Проджект-менеджер
  • UI/UX дизайн

По регионам

  • Вакансии в Европе
  • Вакансии в США
  • Вакансии в Канаде
  • Работа в России

По формату

  • Удалённые вакансии
  • Релокация в США
  • Гибридная работа
  • Офисная работа

По уровню

  • Junior вакансии
  • Middle вакансии
  • Senior вакансии
КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка