← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися реалізувати 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 пайплайн.