这似乎是coreos(?)中硬链接限制的一个问题,应该使用Docker overlayfs2解决。我们不知道为什么在kubernetes(1.8)中发生这种情况,因为它应该自动垃圾收集旧图像。
有什么想法吗?
来自kubectl描述的错误:
Warning Failed 2m kubelet, gke-dev-ctp-default-pool-08c10bb8-f2d1
Failed to pull image "gcr.io/my-group/my-image:latest": rpc error: code = Unknown desc = failed to register layer: link /var/lib/docker/overlay/2f8076d1832a8a60086988b73fd2d8eec7ba38e62e9615f592d048d72d48a227/root/usr/libexec/git-core/git-merge-tree /var/lib/docker/overlay/0c6044f911da4845bac37bad4d1fcf9a7e03a7b8242cf2bf8da46e17ec23e3f9/tmproot518352995/usr/libexec/git-core/git-merge-tree: too many links
答案 0 :(得分:3)
GKE目前没有使用overlayfs2。他们正在努力在GKE 1.9版中启用此功能以及新的docker版本。
解决方法是使用以下方法手动删除所有未使用的图像:
$ docker images | wc -l </ p>
$ docker image prune -a
$ docker images | wc -l </ p>