← До фільтрів та технологій

← До списку лабораторних по Kubernetes

Kubernetes Лабораторна 36: Ручний canary через два deployment

Технологія: Kubernetes

Номер лабораторної: 36 · Рівень: middle

Тема: Canary deployment вручну

Повний опис / сценарій лабораторної:

Мета: навчитися реалізувати canary реліз за допомогою двох deployment і одного service.



Крок 1. Створити stable deployment.

Команда: kubectl create deployment web-stable --image=nginx:1.25 --replicas=4

Пояснення: це стабільна версія додатка.



Крок 2. Створити canary deployment з новою версією.

Команда: kubectl create deployment web-canary --image=nginx:1.27 --replicas=1

Пояснення: нова версія має меншу кількість replica.



Крок 3. Налаштувати один service для обох deployment.

Дія: усім pod web-stable і web-canary додай спільну label app=web.

Пояснення: service web-service з selector app=web буде розподіляти трафік між обома версіями.



Крок 4. Застосувати зміни labels.

Команда: kubectl apply -f web-stable.yaml; kubectl apply -f web-canary.yaml

Пояснення: pod отримають нову мітку app=web.



Крок 5. Створити service web-service з selector app=web.

Команда: kubectl apply -f web-service.yaml

Пояснення: service працює поверх обох deployment.



Крок 6. Перевірити співвідношення трафіку.

Пояснення: оскільки у stable 4 replica а у canary 1 то приблизно 20 відсотків трафіку буде йти на canary.



Крок 7. Змінити кількість replica canary.

Команда: kubectl scale deployment web-canary --replicas=3

Пояснення: тепер частка трафіку на нову версію зросте.



Крок 8. Спостерігати поведінку сервісу під навантаженням.

Пояснення: з допомогою утиліти curl або hey перевір стабільність нової версії.



Крок 9. Завершити міграцію на нову версію.

Команда: kubectl scale deployment web-stable --replicas=0

Пояснення: весь трафік переходить на web-canary яка стає новою stable.



Крок 10. Міні звіт.

Завдання: опиши як автоматизувати такий canary через gitops або ci cd пайплайн.