Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Cloud Stackland
  • Что нового
  • Установка
    • Все руководства
    • Установить Stackland на Yandex BareMetal
    • Установка Stackland на Yandex BareMetal через PXE
    • Установка Stackland на виртуальные машины в Yandex Cloud
    • Настройка внешнего доступа к поду в кластере
    • Все инструкции
      • Инъекция секретов в переменные окружения
      • Инъекция секретов через ConfigMap
      • Диагностика Secrets Store
    • Проекты
    • Ресурсная модель
    • Масштабирование кластера
  • Управление доступом
  • Правила тарификации
  • Диагностика и устранение неполадок

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

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

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

Статья создана
Yandex Cloud
Обновлена 2 июня 2026 г.
Открыть в Markdown
  • Перед началом
  • Создайте 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 ООО «Яндекс.Облако»