ConfigMap

Простыми словами

Один образ можно запускать в тестовой и рабочей среде, передавая разные адреса сервисов и уровни журналирования. Пересобирать приложение ради каждой такой настройки не нужно.

Как применяется

В ConfigMap размещают параметры подключения без паролей, флаги функций и конфигурационные файлы. Доступ к изменениям ограничивают: подмена адреса сервиса или отключение защитной проверки способны нарушить работу приложения даже без утечки секрета.

Пример применения

Сервис получает уровень логирования из переменной окружения. После изменения ConfigMap команда выполняет контролируемый перезапуск Pod: уже запущенный процесс не получит новое значение автоматически. Если настройки подключены файлом, отдельно проверяют обновление тома и умеет ли приложение перечитывать файл.

Не путать с

  • SecretПредназначен для чувствительных значений. ConfigMap не обеспечивает их секретность.
  • Образ контейнераСодержит программные файлы; ConfigMap передаёт настройки уже при запуске.
  • Переменная окруженияСпособ передачи значения процессу, а не самостоятельное хранилище конфигурации.

Как это работает

  1. Отделить настройкиВыносят параметры среды из исходного кода; пароли и ключи сюда не включают.
  2. Создать ConfigMapЗадают именованные значения или конфигурационные файлы в нужном namespace.
  3. Подключить к PodВыбирают переменные окружения или том и проверяют доступные приложению ключи.
  4. Применить изменениеУчитывают способ доставки и перечитывания конфигурации, проверяют поведение после обновления.

Продолжить изучение

Связанные термины

Частые вопросы

Можно хранить пароль?

Нет: используйте Secret или специализированное хранилище секретов с необходимыми мерами защиты.

Настройки обновляются мгновенно?

Нет. Файлы тома обновляются с задержкой; переменные окружения требуют пересоздания Pod. Приложение также должно принять изменение.

ConfigMap шифрует данные?

Нет. Это объект конфигурации, а не механизм конфиденциальности.

ConfigMap — объект Kubernetes для хранения неконфиденциальной конфигурации в виде пар ключ–значение. Pod может использовать эти данные как переменные окружения, аргументы запуска или файлы подключённого тома. ConfigMap отделяет настройки среды от образа приложения.