从容器的镜像版本设置Kubernetes环境变量

4
我在想在Kubernetes部署yaml文件中是否可以引用图像字段,如下所示:
    env:
    - name: VERSION
      value:
        valueFrom:
          containerField: spec.image

请告知我。谢谢。


你想要实现什么目标?也许有更好的方法。 - Arghya Sadhu
@ArghyaSadhu 我的应用程序有一个端点 /version,它从环境变量 VERSION 中读取。 - Arsen
它支持 metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs。也许您可以使用镜像版本为部署添加标签(标签可以作为环境变量传递),然后将其传递给 Pod? - kool
我认为那是唯一的方法。或者可能在CI流程中,我可以公开环境变量VERSION,并在yaml文件中引用它。像这样:env: - name: VERSION value: $VERSION - Arsen
1个回答

0

pod 定义中的 image 值不能使用 fieldRef 作为环境变量传递。

唯一支持的值是 metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPsresource 字段(内存、CPU 请求/限制)以及容器临时存储限制/请求。

作为解决方法,可以使用标签传递它,然后将该标签作为环境变量传递。例如:

    env:
    - name: VERSION
      valueFrom:
        fieldRef: 
          fieldPath: metadata.labels['version']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接