Как внедрить секреты 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 ответ
Среда, установленная в сеансе оболочки (например, в вашей команде), является локальной только для этого сеанса.