#kubernetes
#kubernetes
Вопрос:
Я пытаюсь получить секреты в контейнере инициализации и передать их в основной контейнер. У меня здесь 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