← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися налаштовувати securityContext щоб контейнер працював без прав root і з коректними правами на файлову систему. Крок 1. Створити базовий pod з nginx. Команда: kubectl run sc-demo --image=nginx --dry-run=client -o yaml > sc-demo.yaml Пояснення: далі ми додамо securityContext у yaml. Крок 2. Додати podSecurityContext з runAsUser і fsGroup. Дія: у spec додай podSecurityContext з runAsUser 1000 і fsGroup 1000. Пояснення: всі процеси і файлові операції виконуватимуться від користувача 1000. Крок 3. Додати readOnlyRootFilesystem до контейнера. Пояснення: у контейнер securityContext увімкни readOnlyRootFilesystem true щоб root файлову систему не можна було змінювати. Крок 4. Додати volume для запису логів. Опис: том типу emptyDir змонтуй у /var/log/nginx щоб програма мала куди писати. Пояснення: це типова схема для контейнерів з read only root. Крок 5. Застосувати pod. Команда: kubectl apply -f sc-demo.yaml Пояснення: pod має перейти у стан Running без помилок прав. Крок 6. Перевірити uid процесу в контейнері. Команда: kubectl exec -it sc-demo -- id Пояснення: переконайся що uid не дорівнює нулю. Крок 7. Спробувати створити файл у корені файлової системи. Команда всередині pod: touch /test-root Пояснення: операція має завершитися з помилкою через read only root filesystem. Крок 8. Створити файл у каталозі з томом. Команда: touch /var/log/nginx/test.log Пояснення: у змонтованому томі запис дозволений. Крок 9. Переглянути describe pod. Команда: kubectl describe pod sc-demo Пояснення: у описі видно застосовані securityContext налаштування. Крок 10. Міні звіт. Завдання: опиши які мінімальні securityContext ти вважатимеш обовязковими для продакшн образів.