Kubernetes - используйте Configmap для установки группы переменных среды.

В настоящее время я работаю над проектом, в котором мне нужно установить большее количество (примерно 20) переменных среды.

Теперь эта переменная должна использоваться несколькими контейнерами внутри модуля. Я использую Configmap для определения значений. Теперь моя проблема вот в чем. Я должен установить каждую переменную среды отдельно, а также сделать это для каждого контейнера, который просто довольно уродлив и содержит много ненужного кода. В основном это выглядит примерно так

kind: Pod
apiVersion: v1
...
containers:
- name: container1
  image: my-image:latest
  env:
  - name: VAR1
    valueFrom:
      configMapKeyRef:
        name: my-config
        key: my-var1
    ...
- name: container2
  image: some-other-image:stable
  env:
  - name: VAR1
    valueFrom:
      configMapKeyRef:
        name: my-config
        key: my-var1
    ...

Я хочу автоматически добавлять все значения из моей configMap as и переменной среды в контейнер. Мой первый подход - смонтировать configMap как том, а затем запустить сценарий оболочки при запуске. Подобно этому

configMap

kind: ConfigMap
apiVersion: v1
...
data:
  envCat.sh: |
    #!/bin/sh
    export $(grep -v '^#' /etc/pod-config/envVars | xargs)
    cat
  envVars
    MY_VAR1="HELLO WORLD!!"
    MY_VAR2="I AM HERE"

Пакет

kind: Pod
apiVersion: v1
...
spec:
  volumes:
  - name: config-volume:
    configMap:
      name: my-config
  containers:
  - name: container1
    image: my-image:latest
    volumeMounts:
    - name: config-volume
      mountPath: /etc/pod-config
    command:
    - /etc/pod-config/envCat.sh

К сожалению, команда экспорта работает нормально, когда я запускаю ее вручную в контейнере, но запуск сценария оболочки или запуск / bin / sh /etc/pod-config/envCat.sh не работает.

Есть предложения по достижению того, что я хочу делать?


person relief.melone    schedule 12.03.2019    source источник


Ответы (1)


Вы должны использовать envFrom для загрузки всех пар ключ: значение в качестве переменных среды внутри контейнера.

person P Ekambaram    schedule 12.03.2019
comment
Спасибо. Это было именно то, что я искал. После того, как вы упомянули об этом, я также смог найти его в официальной документации (поиск envFrom: /) kubernetes.io/docs/tasks/configure-pod-container/. - person relief.melone; 12.03.2019