kubernetes - 如何在主容器中加载环境变量
问题描述
我试图在初始化容器中获取秘密并将它们传递给主容器。我这里有2个问题,
- 如何在初始化容器中传递外部机密
- 如何在主容器中将它们称为环境变量
解决方案
您可以在 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: {}
运行 pod 时,看到它们都在打印相同秘密的内容。
kubectl logs mypod -c init
secret
kubectl logs mypod
secret
推荐阅读
- javascript - 老虎机显示零作为结果
- html - 我正在尝试修改此 CSS 代码。每当我点击它时,我将如何防止它缩小
- visual-studio-2013 - 想要获取 2003 年至今的值
- ubuntu - Ubuntu16.04 Gnome 无法保存设置
- java - Java 8 - CrudRepository 类型中的方法 save(S)
不适用于参数(可选 ) - java - 如何使用 JAVA 中的循环打印此数字模式?
- angular - fabricjs angular 4 动态显示fabricjs画布列表
- java - 如何使用 Spring Boot 使用 API 从 Postman 发布数据表单
- vba - 仅数字文本框不适用于用户表单中的两个文本框之一
- python - 无法在 python 子进程中使用 gcloud compute ssh 命令