Pod — минимальная единица

Kubernetes запускает не контейнеры напрямую, а поды — давайте разберёмся, что это и зачем.

Pod — наименьшая развёртываемая единица в Kubernetes: один или несколько контейнеров, которые делят сеть и хранилище и всегда живут вместе на одном узле.

Можно было бы ожидать, что Kubernetes управляет контейнерами. На деле он управляет подами — обёрткой над одним или несколькими контейнерами. Контейнеры внутри одного пода всегда запускаются на одном узле, делят один IP-адрес и могут общаться через localhost.

Манифест простого пода

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: nginx:1.27
      ports:
        - containerPort: 80

Применим и проверим:

kubectl apply -f nginx-pod.yaml
kubectl get pods

Вывод:

NAME        READY   STATUS    RESTARTS   AGE
nginx-pod   1/1     Running   0          8s

Колонка READY = 1/1 значит: из одного контейнера в поде готов один.

Несколько контейнеров в поде

Чаще под содержит один контейнер. Но иногда рядом ставят вспомогательный — паттерн sidecar: например, основной контейнер пишет логи в общий том, а sidecar их отправляет наружу. Контейнеры делят сеть и могут делить тома:

apiVersion: v1
kind: Pod
metadata:
  name: web-with-sidecar
spec:
  containers:
    - name: app
      image: nginx:1.27
    - name: log-shipper
      image: busybox:1.36
      command: ['sh', '-c', 'tail -f /var/log/nginx/access.log']

sidecar — вспомогательный контейнер рядом с основным в одном поде, расширяющий его функции (логирование, прокси, синхронизация).

Поды эфемерны

Важная мысль: под — одноразовый. У него нет «ремонта»: если он упал, его не чинят, а заменяют новым подом с новым IP. Поэтому поды почти никогда не создают вручную — ими управляют контроллеры (Deployment), о которых дальше. Голый под не переживёт падение узла и не масштабируется.

СвойствоЧто значит
общий IPконтейнеры пода общаются через localhost
один узелвсе контейнеры пода на одной машине
эфемерностьупавший под заменяется, а не чинится

Итог

  • Pod — минимальная единица: один или несколько контейнеров с общей сетью.
  • Контейнеры одного пода живут на одном узле и общаются через localhost.
  • Поды эфемерны — управляют ими контроллеры, а не вы вручную.
Проверьте себя
1. Что такое Pod?
AОбраз контейнера
BМинимальная развёртываемая единица из одного или нескольких контейнеров
CСервер кластера
DФайл конфигурации
2. Как контейнеры внутри одного пода общаются между собой?
AЧерез внешний балансировщик
BЧерез localhost, потому что делят один IP
CТолько через ConfigMap
DОни не могут общаться
3. Что происходит с упавшим подом?
AОн автоматически чинится на месте
BОн заменяется новым подом, обычно с новым IP
CОн остаётся в статусе Running
DЕго нужно чинить вручную через SSH
Поддержать проект