Как мне загрузить переменные среды в основной контейнер

#kubernetes

#kubernetes

Вопрос:

Я пытаюсь получить секреты в контейнере инициализации и передать их в основной контейнер. У меня здесь 2 вопроса,

  1. Как передать внешние секреты в контейнер инициализации
  2. Как вызывать их как переменные env в основном контейнере

Ответ №1:

вы можете смонтировать тот же секрет, что и переменные среды, как в initContainer, так и в MainContainer.

Учитывая секрет, такой как:

 k create secret generic mysecret --from-literal=key=secret
  

Это будет что-то вроде:

 apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: mypod
  name: mypod
spec:
  initContainers:
  - name: init
    image: busybox
    env:
    - name: SECRET
      valueFrom:
        secretKeyRef:
          name: mysecret
          key: key
    command: ['sh','-c','echo $SECRET']
  containers:
  - image: busybox
    name: mypod
    resources: {}
    env:
    - name: SECRET
      valueFrom:
        secretKeyRef:
          name: mysecret
          key: key
    command: ['sh','-c','echo $SECRET']
  dnsPolicy: ClusterFirst
  restartPolicy: Never
status: {}
  

При запуске модулей вы увидите, как они оба печатают содержимое одного и того же секрета.

 kubectl logs mypod -c init
secret

kubectl logs mypod
secret