我需要先填充一个位于由init容器填充的pod文件系统中的env文件。
我查了envFrom
documentation,但我无法弄清楚如何使用它,我已经能够在互联网上找到一些相关的例子。
猜猜一个init容器在/etc/secrets/secrets.env
上创建了一个文件,所以pod容器规范必须在/etc/secrets/secrets.env
上查找才能填充env变量。
您将无法使用PodSpec引用任何文件系统组件来填充环境变量,因为它会产生鸡与蛋的问题:kubernetes无法在没有完整PodSpec的情况下创建文件系统,但它无法在没有访问权限的情况下解析PodSpec中的变量到Pod的文件系统
如果/etc/secrets
是volume
和正常的initContainer
分享的container
,那么你可以取代你的command:
的container
,在运行实际命令之前将其输入其环境,但这就像你将获得的那样接近:
containers:
- name: my-app
command:
- bash
- -ec
- |
. /etc/secrets/secrets.env
./bin/run-your-server-command-here