Что является минимальной развертываемой единицей в Kubernetes и каковы её ключевые особенности?

Ответ

Pod (Под) — это минимальная и самая простая развертываемая единица в Kubernetes. Важно понимать, что это не контейнер, а абстракция над одним или несколькими контейнерами.

Pod представляет собой группу из одного или нескольких контейнеров, которые всегда развертываются вместе на одном и том же узле (Node) и разделяют общие ресурсы.

Ключевые особенности Пода:

  1. Общее сетевое пространство: Все контейнеры внутри одного пода имеют общий IP-адрес и диапазон портов. Они могут взаимодействовать друг с другом через localhost.
  2. Общее хранилище (Volumes): Контейнеры в поде могут совместно использовать подключенные к поду тома (volumes), что позволяет им обмениваться данными.
  3. Атомарность и общий жизненный цикл: Все контейнеры в поде создаются, запускаются, останавливаются и удаляются вместе. Если главный контейнер пода завершается, весь под перезапускается (в зависимости от политики restartPolicy).
  4. Основа для паттернов: Модель пода позволяет реализовывать такие паттерны, как "sidecar", где вспомогательный контейнер расширяет функциональность основного (например, для сбора логов, метрик или в качестве прокси).

Пример манифеста простого пода:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod # Имя пода
  labels:
    app: nginx
spec:
  containers:
  - name: nginx-container # Имя контейнера внутри пода
    image: nginx:latest    # Образ для запуска
    ports:
    - containerPort: 80  # Порт, который слушает контейнер

Почему подами не управляют напрямую?

Поды считаются "эфемерными" (недолговечными). Они не восстанавливаются сами после сбоя узла. Поэтому в реальной практике подами управляют через контроллеры более высокого уровня, такие как:

  • Deployment: Обеспечивает декларативное обновление подов и их репликацию (самовосстановление).
  • StatefulSet: Для приложений с состоянием, требующих стабильных идентификаторов и хранилища.
  • DaemonSet: Гарантирует, что на каждом узле кластера будет запущен один экземпляр пода.