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

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

Kubernetes Лабораторна 25: Init контейнері для підготовки середовища

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

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

Тема: Init контейнері

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

Мета: навчитися використовувати 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 контейнер особливо корисний, наприклад міграція бази або підготовка кешу.