Как внедрить секреты Kubernetes Volume также как переменную Env в Pod?

Моя цель — создать переменную среды для модуля из смонтированного секретного тома. Я хочу пропустить промежуточный шаг с созданием секрета Kubernetes (и сослаться на секрет k8s для env), чтобы ничего не сохранялось в хранилище etcd.

Я использую драйвер CSI для подключения секретов моего Azure Key Vault. Громкость работает правильно.

Развертывание.yaml:

      ...
spec:
  volumes:
    - name: keyvault-secrets
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: kevault-secrets
  containers:
    - name: busybox
      image: k8s.gcr.io/e2e-test-images/busybox:1.29
      command:
        - /bin/sh
      args:
        - '-c'
        - >-
          SECRET1=$(cat /mnt/keyvault-secrets/secret1); export SECRET1;echo
          $SECRET1; sleep 1d;
      volumeMounts:
        - name: keyvault-secrets
          readOnly: true
          mountPath: /mnt/keyvault-secrets

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

Любые идеи, почему переменная окружения исчезает?

1 ответ

Среда, установленная в сеансе оболочки (например, в вашей команде), является локальной только для этого сеанса.

Другие вопросы по тегам