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

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

Kubernetes Лабораторна 8: Зберігання секретів у Secret

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

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

Тема: Secret та передача паролів

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

Мета: навчитися зберігати чутливі дані в secret і підключати їх через env.



Крок 1. Створити secret для доступу до бази.

Команда: kubectl create secret generic db-secret --from-literal=DB_USER=appuser --from-literal=DB_PASSWORD=SuperSecret123

Пояснення: створюється секрет типу opaque.



Крок 2. Перевірити, що secret існує.

Команда: kubectl get secret db-secret

Пояснення: переконайся, що запис зявився.



Крок 3. Подивитися yaml secret.

Команда: kubectl get secret db-secret -o yaml

Пояснення: значення зберігаються в полі data у вигляді base64.



Крок 4. Створити deployment, що читає secret в env.

Ідея: контейнер busybox, який виводить змінні DB_USER і DB_PASSWORD, потім виконує sleep.

Пояснення: імітується доступ додатка до бази.



Крок 5. Застосувати deployment.

Команда: kubectl apply -f deploy-secret.yaml

Пояснення: створюється pod secret-demo.



Крок 6. Переглянути логи pod.

Команда: kubectl logs <secret-demo-pod>

Пояснення: виводяться значення залогіну. У реальній системі такі логи не варто зберігати.



Крок 7. Оновити пароль у secret.

Команда: kubectl create secret generic db-secret --from-literal=DB_USER=appuser --from-literal=DB_PASSWORD=NewSecret456 -o yaml --dry-run=client | kubectl apply -f -

Пояснення: так обережно оновлюється секрет.



Крок 8. Перезапустити deployment.

Команда: kubectl rollout restart deployment/secret-demo

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



Крок 9. Перевірити логи нового pod.

Команда: kubectl logs <новий-secret-demo-pod>

Пояснення: переконайся, що використовується нове значення.



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

Завдання: опиши, чому секрети не можна тримати у звичайних configmap або в коді.