Зміст

Теорична інформация

Кубернетес можна уявити наступним чином:

Маніфест (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