Кубернетес можна уявити наступним чином:
Маніфест (YAML)
│\\ ▼\\
Deployment
│\\ ▼\\
ReplicaSet
│\\ ▼\\
Pods
│\\ ▼\\
Containers
Це просто YAML-файл , у якому описано, що ти хочеш отримати.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx …
Ти застосовуєш його:
kubectl apply -f deployment.yaml
Kubernetes читає файл і створює потрібні ресурси.
Deployment відповідає за те, скільки подів повинно працювати і якої вони версії .
Наприклад:
replicas: 3
означає:
Deployment
│\\
┌──┴──┐ │ │ Pod1 Pod2 Pod3
Якщо один под помре — Deployment автоматично створить новий.
Також через Deployment робляться rolling updates.
Це проміжний ресурс.
Його майже ніколи не чіпають вручну.
Deployment автоматично створює ReplicaSet, а той вже стежить за кількістю подів.
Deployment
│\\
ReplicaSet
│\\
3 Pods
Под — це найменша одиниця, яку запускає Kubernetes.
Усередині пода може бути один або кілька контейнерів.
Найчастіше:
Pod
└── Container (portapi)
Або:
Pod
├── app
└── nginx
Це вже сам Docker-контейнер.
Саме тут запускається твоя програма.
Наприклад:
nginx