PRO

Что такое Kubernetes? Чем Pod отличается от Deployment?

Kubernetes — платформа оркестрации контейнеров, которая управляет запуском, масштабированием, обновлением и восстановлением приложений. Pod — минимальная запускаемая единица с одним или несколькими контейнерами, а Deployment — контроллер, который поддерживает нужное число одинаковых Pod и управляет их обновлением.
Подробный ответ

Что такое Kubernetes

Kubernetes, или K8s, — система оркестрации контейнеров. Она помогает запускать контейнеризированные приложения на нескольких серверах, поддерживать нужное число экземпляров, балансировать трафик, выполнять rolling update и автоматически восстанавливать упавшие контейнеры.

Что такое Pod

Pod — минимальная единица развертывания в Kubernetes. Он включает один или несколько тесно связанных контейнеров, которые используют общую сеть, IP-адрес и при необходимости общие volumes.

Что такое Deployment

Deployment описывает желаемое состояние stateless-приложения: какой image использовать, сколько реплик должно быть, какие labels, ресурсы, probes и стратегия обновления нужны. Deployment создаёт и управляет ReplicaSet, а ReplicaSet поддерживает нужное число Pod.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 3
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
        - name: api
          image: ghcr.io/acme/api:1.0.0
          ports:
            - containerPort: 8000

Главная разница

  • Pod запускает конкретный экземпляр приложения;

  • Deployment управляет жизненным циклом множества одинаковых Pod;

  • Pod обычно не создают вручную для production stateless-сервиса;

  • Deployment восстанавливает Pod, выполняет rollout и rollback.

Как ответить на собеседовании

Kubernetes — это оркестратор контейнеров. Pod — минимальная запускаемая единица с контейнерами, а Deployment — декларативный контроллер, который поддерживает заданное число Pod и управляет их обновлением. Для stateless API в production я обычно использую Deployment, а не отдельный Pod.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге