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

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

Kubernetes Лабораторна 27: StatefulSet для станового сервісу

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

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

Тема: StatefulSet базова робота

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

Мета: навчитися створювати statefulset для сервісів які потребують стабільної ідентичності.



Крок 1. Створити headless service для statefulset.

Yaml: service з clusterIP None і selector app=ss-demo.

Пояснення: headless service забезпечує стабільні dns записи для pod.



Крок 2. Написати yaml для statefulset.

Опис: три replica з контейнером nginx і volumeClaimTemplates для persistent storage.

Пояснення: кожен pod отримує власний pvc.



Крок 3. Застосувати service і statefulset.

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

Пояснення: pod будуть створюватися послідовно з іменами ss-demo-0 ss-demo-1 ss-demo-2.



Крок 4. Перевірити список pod.

Команда: kubectl get pods -l app=ss-demo

Пояснення: імена pod мають фіксований порядковий суфікс.



Крок 5. Перевірити список pvc.

Команда: kubectl get pvc -l app=ss-demo

Пояснення: для кожного pod є окремий pvc наприклад data-ss-demo-0.



Крок 6. Зайти в pod з індексом 0 і створити файл.

Команда: kubectl exec -it ss-demo-0 -- sh

Пояснення: створи файл у змонтованому томі наприклад echo node0 > /data/node.txt.



Крок 7. Видалити pod ss-demo-0.

Команда: kubectl delete pod ss-demo-0

Пояснення: statefulset відновить pod з тим самим імям і pvc.



Крок 8. Перевірити що файл зберігся.

Команда: kubectl exec -it ss-demo-0 -- cat /data/node.txt

Пояснення: дані мають залишитися після перезапуску pod.



Крок 9. Зменшити replicas до двох.

Команда: kubectl scale statefulset ss-demo --replicas=2

Пояснення: pod з найбільшим індексом буде видалений першим.



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

Завдання: опиши коли statefulset краще за deployment наприклад для баз даних або черг повідомлень.