Сценарий
Переменная окружения — это переменная, значение которой может влиять на поведение запущенного контейнера. Вы можете изменять переменные окружения даже после развертывания рабочих нагрузок, что повышает гибкость конфигурации нагрузки.
Функция установки переменных окружения в CCE такая же, как и указание ENV в Dockerfile.
После запуска контейнера не изменяйте конфигурации в контейнере. Если конфигурации в контейнере изменяются (например, пароли, сертификаты и переменные окружения контейнеризированного приложения добавляются в контейнер), они будут потеряны после перезапуска контейнера, и сервисы контейнера станут ненормальными. Пример сценария перезапуска контейнера — переназначение pod из‑за аномалий узла.
Конфигурации должны импортироваться в контейнер в виде аргументов. В противном случае они будут потеряны после перезапуска контейнера.
Переменные окружения могут устанавливаться в следующих режимах:
- Пользовательский: Введите имя переменной окружения и значение параметра.
- Добавлено из ConfigMap: Импортировать все ключ‑значения из ConfigMap в переменные окружения.
- Добавлено из ключа ConfigMap: Импортировать значение ключа из ConfigMap в качестве значения переменной окружения. Как показано в Рисунок 1, если вы импортируете configmap_value из configmap_key в configmap-example в качестве значения переменной окружения key1, переменная окружения с именем key1 значением которой configmap_value доступна в контейнере.
- Добавлено из secret: Импортировать все ключ‑значения из secret в переменные окружения.
- Добавлено из ключа secret: Импортировать значение ключа из secret в качестве значения переменной окружения. Как показано в Рисунок 1, если вы импортируете secret_value из secret_key в secret-example в качестве значения переменной окружения key2, переменная окружения с именем key2 значением которой secret_value доступна в контейнере.
- Значение/ссылка переменной: Использовать поле, определённое pod, в качестве значения переменной окружения. Как показано в Рисунок 1, если имя pod импортировано в качестве значения переменной окружения key3, переменная окружения с именем key3 значение которой — имя pod — доступно в контейнере.
- Ссылка на ресурс: Значение Request или Limit определяемое контейнером используется в качестве значения переменной окружения. Как показано в Рисунок 1, если вы импортируете лимит CPU контейнера-1 в качестве значения переменной окружения key4, переменная окружения с именем key4 значением которой является лимит CPU контейнера-1, доступна в контейнере.
Добавление переменных окружения
- Войдите в консоль CCE.
- Нажмите имя кластера, чтобы перейти в консоль кластера, выберите Рабочие нагрузки в навигационной панели и нажмите Создать рабочую нагрузку в правом верхнем углу.
- При создании рабочей нагрузки измените информацию о контейнере в Настройки контейнера и нажмите Переменные окружения вкладке.
- Настройте переменные окружения.
- Чтобы добавить переменные окружения по одной, нажмите Добавление переменной и настройте её параметры.
- Чтобы добавить переменные окружения пакетно, нажмите Редактирование пользовательских переменных пакетно. Затем, в отображаемом диалоговом окне введите переменные окружения в формате "Имя переменной=Переменная или ссылка на переменную".
Рисунок 1 Настройка переменных окружения

Пример YAML
apiVersion: apps/v1kind: Deploymentmetadata:name: env-examplenamespace: defaultspec:replicas: 1selector:matchLabels:app: env-exampletemplate:metadata:labels:app: env-examplespec:containers:- name: container-1image: nginx:alpineimagePullPolicy: Alwaysresources:requests:cpu: 250mmemory: 512Milimits:cpu: 250mmemory: 512Mienv:- name: key # Customvalue: value- name: key1 # Added from ConfigMap keyvalueFrom:configMapKeyRef:name: configmap-examplekey: configmap_key- name: key2 # Added from secret keyvalueFrom:secretKeyRef:name: secret-examplekey: secret_key- name: key3 # Variable reference, which uses the field defined by a pod as the value of the environment variable.valueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: key4 # Resource reference, which uses the field defined by a container as the value of the environment variable.valueFrom:resourceFieldRef:containerName: container1resource: limits.cpudivisor: 1envFrom:- configMapRef: # Added from ConfigMapname: configmap-example- secretRef: # Added from secretname: secret-exampleimagePullSecrets:- name: default-secret
Просмотр переменных окружения
Если содержимое configmap-example и secret-example следующее:
$ kubectl get configmap configmap-example -oyamlapiVersion: v1data:configmap_key: configmap_valuekind: ConfigMap...$ kubectl get secret secret-example -oyamlapiVersion: v1data:secret_key: c2VjcmV0X3ZhbHVl # c2VjcmV0X3ZhbHVl is the value of secret_value in Base64 mode.kind: Secret...
Переменные окружения в pod следующие:
$ kubectl get podNAME READY STATUS RESTARTS AGEenv-example-695b759569-lx9jp 1/1 Running 0 17m$ kubectl exec env-example-695b759569-lx9jp -- printenv/ # envkey=value # Custom environment variablekey1=configmap_value # Added from ConfigMap keykey2=secret_value # Added from secret keykey3=env-example-695b759569-lx9jp # metadata.name defined by the podkey4=1 # limits.cpu defined by container1. The value is rounded up, in unit of cores.configmap_key=configmap_value # Added from ConfigMap. The key value in the original ConfigMap key is directly imported.secret_key=secret_value # Added from key. The key value in the original secret is directly imported.
- Scenario
- Adding Environment Variables
- YAML Example
- Viewing Environment Variables