我有一个Deployment使用Downward API公开 POD ID的对象。这很好用。但是,我想设置另一个环境变量,日志路径,参考 POD ID。但是,将该变量值设置/var/log/mycompany/${POD_ID}/logs为不起作用,容器中不会创建任何日志。我可以让入口点脚本或应用程序知道 POD ID,并建立日志路径,但我不想这样做。

正确的语法是使用$(FOO),如v1.EnvVarvalue:文档中所述;您使用的语法是“shell”语法,这不是 kubernetes 插入变量的方式。所以:

1
2
3
4
5
6
containers:
- env:
  - name: POD_ID
    valueFrom: # etc etc
  - name: LOG_PATH
    value: /var/log/mycompany/$(POD_ID)/logs

另请注意,如文档中所述,要扩展的变量必须在引用它的变量之前定义。