← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися використовувати init контейнер для попередньої підготовки файлів або перевірок. Крок 1. Створити configmap з конфіг файлом. Команда: kubectl create configmap init-config --from-literal=message="Hello from init" Пояснення: це повідомлення init контейнер запише у файл. Крок 2. Написати yaml pod з init контейнером. Опис: init контейнер busybox читає значення з env і пише його у /work/msg.txt, основний контейнер nginx просто віддає цей файл. Пояснення: обидва контейнери використовують спільний том emptyDir. Крок 3. Застосувати pod. Команда: kubectl apply -f pod-init.yaml Пояснення: init контейнер має виконатися першим і завершитися успішно. Крок 4. Перевірити статус pod. Команда: kubectl get pod init-demo Пояснення: у describe pod можна побачити секцію init containers із статусом completed. Крок 5. Подивитися логи init контейнера. Команда: kubectl logs init-demo -c init-container Пояснення: переконайся що скрипт відпрацював правильно. Крок 6. Перевірити наявність файлу в основному контейнері. Команда: kubectl exec -it init-demo -c app -- cat /usr/share/nginx/html/msg.txt Пояснення: файл має містити повідомлення з configmap. Крок 7. Змінити configmap і перезапустити pod. Пояснення: онови значення message і видали pod щоб init контейнер відпрацював знову. Крок 8. Перевірити новий вміст файлу. Команда: kubectl exec -it init-demo -c app -- cat /usr/share/nginx/html/msg.txt Пояснення: переконайся що зміни зявилися. Крок 9. Зімітувати помилку в init контейнері. Дія: зміни команду init контейнера так щоб вона повертала помилку. Пояснення: pod не перейде в стан running доки init не завершиться успішно. Крок 10. Міні звіт. Завдання: наведи приклади задач де init контейнер особливо корисний, наприклад міграція бази або підготовка кешу.