Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Cloud Stackland
  • Что нового
  • Установка
    • Все руководства
    • Установить Stackland на Yandex BareMetal
    • Установка Stackland на виртуальные машины в Yandex Cloud
    • Настройка внешнего доступа к поду в кластере
    • Все инструкции
      • Инъекция секретов в переменные окружения
      • Инъекция секретов через ConfigMap
      • Диагностика Secrets Store
    • Проекты
    • Ресурсная модель
  • Управление доступом
  • Правила тарификации
  • Диагностика и устранение неполадок

В этой статье:

  • Перед началом
  • Создайте namespace и ServiceAccount
  • Настройте роль в Secrets Store
  • Создайте ConfigMap со ссылками на секреты
  • Подготовьте Deployment
  • Примените манифесты
  • Проверьте результат
  • Несколько директорий ConfigMap
  • Диагностика
  1. Пошаговые инструкции
  2. Secrets Store
  3. Инъекция секретов через ConfigMap

Инъекция секретов через ConfigMap (ConfigMap mode)

Статья создана
Yandex Cloud
Обновлена 2 июня 2026 г.
  • Перед началом
  • Создайте namespace и ServiceAccount
  • Настройте роль в Secrets Store
  • Создайте ConfigMap со ссылками на секреты
  • Подготовьте Deployment
  • Примените манифесты
  • Проверьте результат
  • Несколько директорий ConfigMap
  • Диагностика

В этом руководстве описано, как настроить подстановку секретов из Secrets Store в файлы конфигурации с помощью ConfigMap mode Secrets Injector.

В ConfigMap mode инжектор работает как init-контейнер. Он обрабатывает ConfigMap пода, заменяет ссылки на секреты реальными значениями и записывает результирующие файлы в директорию /secrets. Основной контейнер читает уже заполненные конфигурационные файлы оттуда.

Перед началомПеред началом

  1. Убедитесь, что компонент Secrets Store установлен и активен в кластере.
  2. В Secrets Store созданы секреты, к которым должно обращаться приложение.

Создайте namespace и ServiceAccountСоздайте namespace и ServiceAccount

Создайте namespace для приложения (если ещё не создан):

kubectl create namespace myapp-namespace

Создайте ServiceAccount:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: myapp-sa
  namespace: myapp-namespace
kubectl apply -f serviceaccount.yaml

Настройте роль в Secrets StoreНастройте роль в Secrets Store

Настройте роль в Secrets Store с доступом к нужным путям и привязкой к созданному ServiceAccount.

Создайте ConfigMap со ссылками на секретыСоздайте ConfigMap со ссылками на секреты

В значениях ключей ConfigMap укажите ссылки на секреты в формате secrets:<путь>#<ключ>:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
  namespace: myapp-namespace
data:
  database.yaml: |
    host: postgres.example.com
    port: 5432
    username: myapp
    password: secrets:secret/data/myapp/database#password
  app.yaml: |
    log_level: info
    api_token: secrets:secret/data/myapp/api#token
kubectl apply -f configmap.yaml

Подготовьте DeploymentПодготовьте Deployment

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
  namespace: myapp-namespace
data:
  database.yaml: |
    host: postgres.example.com
    port: 5432
    username: myapp
    password: secrets:secret/data/myapp/database#password
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  namespace: myapp-namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
      annotations:
        secrets.stackland.yandex.cloud/render-configmap: "true"
        secrets.stackland.yandex.cloud/role: "myapp"
    spec:
      serviceAccountName: myapp-sa
      containers:
        - name: app
          image: myapp:latest
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "500m"
              memory: "256Mi"
          volumeMounts:
            - name: app-config
              mountPath: /config
      volumes:
        - name: app-config
          configMap:
            name: app-config

Ключевые требования:

  • Аннотация secrets.stackland.yandex.cloud/render-configmap: "true" включает ConfigMap mode.
  • Аннотация secrets.stackland.yandex.cloud/role задает роль в Secrets Store.
  • Аннотации размещаются в spec.template.metadata.annotations (на шаблоне пода).
  • ConfigMap монтируется в директорию, указанную в configmap-mounts (по умолчанию /config).
  • Том для готовых файлов с секретами добавляется вебхуком автоматически и монтируется в /secrets.

Примените манифестыПримените манифесты

kubectl apply -f deployment.yaml

Проверьте результатПроверьте результат

# Проверить статус пода
kubectl get pods -n myapp-namespace

# Проверить логи init-контейнера инжектора
kubectl logs <имя_пода> -n myapp-namespace -c stackland-secrets-injector

# Проверить содержимое /secrets внутри пода
kubectl exec -n myapp-namespace <имя_пода> -- ls /secrets
kubectl exec -n myapp-namespace <имя_пода> -- cat /secrets/database.yaml

В директории /secrets будут файлы с именами, соответствующими ключам ConfigMap, и подставленными значениями секретов. Права доступа к файлам — 0600.

Несколько директорий ConfigMapНесколько директорий ConfigMap

Если ConfigMap подмонтированы в несколько директорий, перечислите их через запятую:

annotations:
  secrets.stackland.yandex.cloud/configmap-mounts: "/config/app,/config/db,/etc/config"

Важно

Формат name:/path не поддерживается — указывайте только пути к директориям.

ДиагностикаДиагностика

Если секреты не подставляются, смотрите раздел Диагностика Secrets Store.

Была ли статья полезна?

Предыдущая
Инъекция секретов в переменные окружения
Следующая
Диагностика Secrets Store
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»