我正在使用 Kubernetes 运行 Docker 镜像。我想将正在使用的图像的摘要传递给容器。这样容器内的代码就可以使用它来调试/记录日志。问题是,如果不将图像摘要硬编码到 pod 配置中,我似乎无法找到一种方法来做到这一点。
有没有办法定义 pod 配置方式,以便它动态地将摘要作为环境变量传递给最终使用的 Docker 镜像版本?
最佳答案
无论 Kubernetes 碰巧知道什么,都可以使用 downward API 进行注入(inject)。那组数据在 the API reference for Pod objects .
看起来这应该可行:
env:
- name: DOCKER_IMAGE_ID
valueFrom:
fieldRef:
fieldPath: status.containerStatuses[0].imageID
您可能更愿意注入(inject) spec.containers[0].image
名称,这样事后会更容易理解。如果您使用像 Helm 这样的工具要生成配置,您还可以使用其值系统:
image: {{ .Values.image }}:{{ .Values.tag }}
env:
- name: DOCKER_IMAGE_TAG
value: {{ .Values.tag }}
关于docker - 如何在 Kubernetes 中将用于容器的 Docker 镜像的摘要作为环境变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54467741/