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