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

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

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

Инъекция секретов в переменные окружения (Env mode)

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

В этом руководстве описано, как настроить подстановку секретов из Secrets Store в переменные окружения пода с помощью Secrets Injector.

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

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

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

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

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

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

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

Разместите аннотации в spec.template.metadata.annotations шаблона пода:

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-env: "true"
        secrets.stackland.yandex.cloud/role: "myapp"
    spec:
      serviceAccountName: myapp-sa
      containers:
        - name: app
          image: myapp:latest
          # В Env mode задайте command или args с исполняемым файлом первым элементом.
          command:
            - /app/myapp
          args:
            - --config=/config/app.yaml
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "500m"
              memory: "256Mi"
          env:
            - name: DB_PASSWORD
              value: "secrets:secret/data/myapp/database#password"
            - name: API_KEY
              value: "secrets:secret/data/myapp/api#key"

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

  • Аннотация secrets.stackland.yandex.cloud/render-env: "true" включает Env mode.
  • Аннотация secrets.stackland.yandex.cloud/role задает роль в Secrets Store.
  • В контейнере необходимо задать command или args, где первый элемент args — исполняемый файл. Инжектор использует эти поля для запуска приложения. Если не задано ни одно из этих полей, под не запустится с ошибкой no command is given.
  • В поле env ссылки на секреты имеют формат secrets:<путь>#<ключ>.

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

kubectl apply -f deployment.yaml

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

Убедитесь, что под запустился и секреты подставлены:

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

# Проверить логи основного контейнера (инжектор работает как обёртка процесса, не как init-контейнер)
kubectl logs <имя_пода> -n myapp-namespace -c app

# Проверить переменные окружения внутри пода
kubectl exec -n myapp-namespace <имя_пода> -- env | grep DB_

В логах успешной инъекции в начале вывода должны быть строки:

level=INFO msg="found secret references" count=2
level=INFO msg="successfully injected secrets" count=2
level=INFO msg="spawning process" binary=...

Использование нескольких контейнеровИспользование нескольких контейнеров

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

annotations:
  secrets.stackland.yandex.cloud/render-env: "true"
  secrets.stackland.yandex.cloud/role: "myapp"
  secrets.stackland.yandex.cloud/containers: "app,worker"

Если аннотация containers не задана и контейнеров несколько, вебхук отклоняет создание пода, Deployment завершается ошибкой.

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

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

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

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