手动删除 kubernetes (GKE) 上未使用的图像

Manually deleting unused Images on kubernetes (GKE)

我是 运行 Cloud Platform 上的托管 kubernetes 集群,具有用于开发的单个节点。

然而,当我过于频繁地更新 Pod 映像时,ImagePull 步骤会因引导磁盘中的磁盘 space 不足而失败。

我注意到根据文档图像应该自动 GC-ed,但我不知道 GKE 上的设置是什么或如何更改它。

https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection/#image-collection

  1. 我可以使用 kubectl 或 Google 云控制台命令手动触发未使用的图像清理吗?
  2. 如何check/change上面的GC设置,以后就不会遇到这个问题了?

由于垃圾收集器是一项自动化服务,因此 GCP 中没有 kubectl 命令或任何其他命令来手动触发垃圾收集器。

关于你的第二个问题,Garbage Collector是由Master节点处理的。用户无法访问主节点,因为它是一项托管服务。因此,用户无法使用 GKE 配置垃圾收集。

我可以提供的唯一解决方法是 create a custom cluster from scratch 在 Google Compute Engine 中。这将使您能够访问集群的主节点,因此您可以根据自己的喜好灵活配置集群。

编辑:如果您需要删除旧图像,我建议使用 docker 命令删除旧图像。我附上了一篇 github 文章,其中提供了几个不同的命令,您可以在节点级别 运行 删除旧图像 here