Что такое 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.