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

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

Kubernetes Лабораторна 57: kubectl diff і apply --server-side

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

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

Тема: Використання kubectl diff та server side apply

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

Мета: навчитися використовувати kubectl diff для попереднього перегляду змін та server side apply для кращого керування конфігом.



Крок 1. Створити простий deployment через yaml.

Команда: kubectl create deployment diff-demo --image=nginx -o yaml --dry-run=client > diff-demo.yaml

Пояснення: базовий маніфест для експериментів.



Крок 2. Застосувати yaml у кластері.

Команда: kubectl apply -f diff-demo.yaml

Пояснення: створиться deployment з початковими параметрами.



Крок 3. Внести зміни у yaml.

Пояснення: наприклад додай env або змінити кількість replica.



Крок 4. Виконати kubectl diff.

Команда: kubectl diff -f diff-demo.yaml

Пояснення: у виводі видно різницю між поточним станом і новим yaml.



Крок 5. Застосувати зміни з server side apply.

Команда: kubectl apply -f diff-demo.yaml --server-side

Пояснення: kube api зберігає інформацію про поля власника конфігу.



Крок 6. Переглянути managedFields у ресурсі.

Команда: kubectl get deploy diff-demo -o yaml

Пояснення: у managedFields видно які клієнти змінювали які поля.



Крок 7. Зімітувати конфлікт змін.

Пояснення: зміни частину полів через kubectl patch або через інший yaml і спробуй ще раз застосувати свій файл.



Крок 8. Проаналізувати повідомлення про конфлікт.

Пояснення: зрозумій які поля конфліктують і чому server side apply їх захищає.



Крок 9. Вирішити конфлікт коректним редагуванням yaml.

Пояснення: відредагуй файл так щоб відображав бажаний кінцевий стан і повтори apply.



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

Завдання: опиши чому server side apply зручний для gitops і спільної роботи кількох команд.