如何在 Google Cloud Platform Kubernetes Pod 中获取镜像名称

How to get image name in Google Cloud Platform Kubernetes Pod

如何在 中的 pod 上获取容器镜像 运行 的 digest

根据下面的屏幕截图,我希望能够从 pod 中检索 d976aea36eb5(日志、YAML 等,无论是通过何种方式获取)

我可以从YAML://Deployment/spec/template/spec/containers/image得到的是mysolution.host,这是图片的通用名称。

如果无法通过 kubernetes API 实现,您可以通过 docker 注册表 API.

您要查找的是图像的 摘要,即其 manifest 的 sha256 哈希。 GCR 的 UI 截图中的 "Name" 列是图像的截断摘要。

字符串 us.gcr.io/my-project-37111/mysolution.host 表示一个 存储库 ,它只是一个图像集合。这些图像可以通过它们的摘要或标签来引用。

您可以使用 gcloud 列出存储库中的所有标签:

$ gcloud container images list-tags us.gcr.io/my-project-37111/mysolution.host

这也会向您显示截断的摘要。对于完整摘要,您可以使用 --format=json 标志:

$ gcloud container images list-tags --format=json us.gcr.io/my-project-37111/mysolution.host

如果您碰巧知道标签(0.0.5-linux 突出显示的图像),您可以直接调用注册表 API:

$ curl \
  -H "Accept: *" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -I https://us.gcr.io/v2/my-project-37111/mysolution.host/manifests/0.0.5-linux |
  grep "digest"