Средний

Поды, деплойменты и сервисы

Урок 2 из 3 в курсе Kubernetes для backend-разработчика

Содержание курса (2/3)

Поды, деплойменты и сервисы

три базовых ресурса Kubernetes, на которых строится почти всё.

Почему это важно: Без понимания этих трёх абстракций невозможно ни задеплоить приложение, ни понять, почему оно недоступно.

Главная идея

Pod — единица запуска, Deployment — управляет репликами Pod'ов, Service — стабильная точка доступа к ним.

Как это выглядит на практике

  1. Pod содержит один или несколько контейнеров с общей сетью.
  2. Deployment описывает желаемое количество подов и стратегию обновления.
  3. Service даёт стабильный DNS и IP, балансируя запросы между подами.
  4. При rolling update Deployment поэтапно заменяет старые поды новыми.

Что происходит под капотом

  • Pod — эфемерен: его IP меняется при пересоздании, поэтому к нему нельзя обращаться напрямую.
  • ReplicaSet (создаваемый Deployment) следит за количеством реплик.
  • Service использует label selector, чтобы найти свои поды.
  • Типы Service: ClusterIP (внутри), NodePort (наружу через порт), LoadBalancer (через cloud LB).

Типичные ошибки и заблуждения

  • Ошибка: Pod = контейнер. Pod может содержать несколько контейнеров (sidecar pattern).
  • Ошибка: Service — это load balancer уровня L7. По умолчанию он L4 (TCP).
  • Ошибка: достаточно создать Pod вручную. Без Deployment он не пересоздастся при падении узла.
  • Ошибка: rolling update — это zero-downtime магия. Без правильных probes возможны таймауты.

Ключевые выводы

  • Pod — единица масштабирования и эфемерен.
  • Deployment управляет подами и обновлениями.
  • Service даёт стабильную точку доступа.
  • Label selector связывает Service с подами.

Термины урока

Pod: единица запуска одного или нескольких контейнеров.
Deployment: контроллер, управляющий ReplicaSet и подами.
Service: абстракция для доступа к набору подов.
Label: пара ключ-значение, используемая для группировки ресурсов.

Связь с работой backend-разработчика

Понимание тройки Pod/Deployment/Service закрывает 80% повседневных задач разработчика в Kubernetes.

Мини-разбор реальной ситуации

Команда обновила образ в Deployment, и 30% запросов стали падать. Оказалось, не было readinessProbe, и Service отправлял трафик на ещё не готовые поды.

Что запомнить

  • Pod эфемерен, поэтому нужен Service.
  • Deployment — про реплики и обновления.
  • Probes критичны для zero-downtime.

Итог

Pod, Deployment, Service — кирпичики, из которых строится почти любое приложение в Kubernetes.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.