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.
- Поды эфемерны — управляют ими контроллеры, а не вы вручную.