Получить доступ

Как передать конфигурацию и секреты приложению в Kubernetes?

MiddleKubernetes
Ещё спрашивают так:
  • Безопасны ли Secret в Kubernetes?
  • Чем ConfigMap отличается от Secret?
Коротко

ConfigMap — несекретные настройки, Secret — пароли, токены, сертификаты; оба подключаются как переменные окружения или файлы в томе. Secret по умолчанию лишь закодирован в base64, а не зашифрован: нужно включить шифрование etcd, ограничить RBAC и не хранить секреты в Git в открытом виде — использовать Vault, External Secrets, Sealed Secrets или SOPS.

  • Переменные окружения читаются при старте; файлы в томе обновляются, но приложение должно их перечитать
  • Изменение ConfigMap не перезапускает поды — часто добавляют хеш конфига в аннотацию шаблона
  • Переменные окружения легко утекают в логи и дампы — файлы безопаснее

А ещё Принцип 12 factor: конфигурация в окружении, образ один на все среды

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Подключение:

env:
  - name: DB_PASSWORD
    valueFrom: { secretKeyRef: { name: orders-db, key: password } }
volumeMounts:
  - { name: config, mountPath: /etc/orders }
volumes:
  - { name: config, configMap: { name: orders-config } }

Защита секретов:

  • шифрование etcd на диске (EncryptionConfiguration или средства облака);
  • RBAC: читать Secret может только сервисный аккаунт приложения;
  • в Git — только зашифрованные (Sealed Secrets, SOPS) или ссылки на внешнее хранилище (External Secrets Operator + Vault или облачный менеджер секретов);
  • ротация и короткоживущие учётные данные (динамические секреты Vault).

Обновление конфигурации. Deployment не замечает изменения ConfigMap. Варианты: аннотация с хешем конфигурации в шаблоне пода (Helm checksum/config), перезапуск kubectl rollout restart, перечитывание файла приложением.

Что хотят услышать

  • ConfigMap против Secret и способы подключения.
  • Base64 — не шифрование, способы защиты.
  • Обновление конфигурации без ручных перезапусков.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем