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