如何在Kubernetes中将作为环境变量的Docker映像摘要传递给容器

时间:2019-01-31 19:14:22

标签: docker kubernetes

我正在使用Kubernetes运行Docker映像。我想将正在使用的图像摘要传递给容器。这样容器内的代码可以使用它进行调试/记录。问题在于,如果不将图像摘要硬编码到pod配置中,我似乎无法找到一种方法。

是否有一种方法可以定义pod配置方式,以便它针对最终使用的Docker映像的任何版本将摘要作为环境变量动态传递?

1 个答案:

答案 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 }}