Практическое задание

Эта задача — шаг 7 курса «Kubernetes на практике»

Пароль — в Secret

средне~12 мин

Deployment app получает пароль от базы в переменной DB_PASSWORD — и он записан прямо в манифесте, открытым текстом: его видит любой, кто может прочитать Deployment. Перенеси пароль в Secret db-secret (ключ password) и подай его в контейнер из Secret. Значение пароля не меняй — s3cr3t-pass.

Что потренируешь:
  • kubernetes
  • kubectl
  • secret
  • secretkeyref
  • конфигурация

Разбор темы

Secret хранит чувствительные данные отдельно от манифестов: в Deployment остаётся только ссылка на Secret и ключ, а не сам пароль. В контейнер значения из Secret подают переменными окружения (valueFrom.secretKeyRef, или все ключи через envFrom.secretRef) либо файлами в томе. Значения в Secret хранятся в base64 — это кодировка, а не шифрование: доступ к Secret ограничивают правами (RBAC) и шифрованием etcd.

Что проверяется

  1. Secret db-secret с паролем
  2. пароль берётся из Secret
  3. в манифесте нет пароля
  4. приложение подключилось к базе

Как это выглядит