我有一个Deployment
使用Downward API公开POD ID 的对象.这很好.但是,我想设置另一个env变量,日志路径,参考POD ID.但是,将该变量值设置/var/log/mycompany/${POD_ID}/logs
为不起作用,则不会在容器中创建任何日志.我可以使入口点脚本或应用程序知道POD ID,并建立日志路径,但我宁愿不这样做.
mda*_*iel 25
使用正确的语法$(FOO)
,如v1.EnvVar value:
文档中所述 ; 您使用的语法是"shell"语法,这不是kubernetes插入变量的方式.所以:
containers:
- env:
- name: POD_ID
valueFrom: # etc etc
- name: LOG_PATH
value: /var/log/mycompany/$(POD_ID)/logs
Run Code Online (Sandbox Code Playgroud)
另请注意,如文档中所述,必须在引用它的变量之前定义要扩展的变量.
我只想补充这个问题,这是我们前几天遇到的一个警告。根据文档:
变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。
强调我的。如果你有
- name: POD_ID
valueFrom: # etc etc
- name: LOG_PATH
value: /var/log/mycompany/$(POD_ID)/logs
Run Code Online (Sandbox Code Playgroud)
它会起作用,但如果你有
- name: LOG_PATH
value: /var/log/mycompany/$(POD_ID)/logs
- name: POD_ID
valueFrom: # etc etc
Run Code Online (Sandbox Code Playgroud)
它不会。如果您使用模板引擎来生成规范,请注意。
归档时间: |
|
查看次数: |
7458 次 |
最近记录: |