我正在使用Kubernetes运行Docker映像。我想将正在使用的图像摘要传递给容器。这样容器内的代码可以使用它进行调试/记录。问题在于,如果不将图像摘要硬编码到pod配置中,我似乎无法找到一种方法。
是否有一种方法可以定义pod配置方式,以便它针对最终使用的Docker映像的任何版本将摘要作为环境变量动态传递?
答案 0 :(得分:3)
任何Kubernetes碰巧知道的东西都可以使用downward API注入。该数据集位于the API reference for Pod objects中。
看起来应该可以:
env:
- name: DOCKER_IMAGE_ID
valueFrom:
fieldRef:
status.containerStatuses[0].imageID
您可能希望插入spec.containers[0].image
名称,这在事后更容易理解。如果您使用Helm之类的工具来生成配置,则还可以使用其值系统:
image: {{ .Values.image }}:{{ .Values.tag }}
env:
- name: DOCKER_IMAGE_TAG
value: {{ .Values.tag }}