AKS未能提取图像失败的大小验证



我在Gitlab上设置了一个自定义docker映像注册表,AKS由于某种原因无法从那里提取映像。
抛出的错误是:

Failed to pull image "{registry}/{image}:latest": rpc error: code = FailedPrecondition desc = 
failed to pull and unpack image "{registry}/{image}:latest": failed commit on ref "layer-sha256:e1acddbe380c63f0de4b77d3f287b7c81cd9d89563a230692378126b46ea6546": "layer-sha256:e1acddbe380c63f0de4b77d3f287b7c81cd9d89563a230692378126b46ea6546" failed size validation: 0 != 27145985: failed precondition

有趣的是,该图像没有id为

的图层
sha256:e1acddbe380c63f0de4b77d3f287b7c81cd9d89563a230692378126b46ea6546

也许有些东西在AKS侧缓存?在重新部署之前,我删除了部署和pod。

我找不到关于这类错误的太多信息,我不知道是什么原因导致的。从本地docker环境中提取相同的映像可以完美地工作。
任何提示将不胜感激!

•您可以尝试扩展注册表以在所有节点上运行。Kubernetes控制器尝试变得智能,并在内部路由节点请求,而不是将流量发送到负载均衡器IP。但问题是,如果该节点上没有注册服务,那么数据包将无处可去。因此,扩大规模或通过非aks LB路由。

•同时,清理${containerd folder}/io.containerd.content.v1.content/ingest中的图像层缓存文件夹。当某些层数据损坏时,Containerd不会自动清理缓存。您也可以尝试清除此路径下的内容${containerd folder}/io.containerd.content.v1.content/ingest.

•可能这是一个TCP部集群之间的网络连接问题和码头工人Gitlab图像注册表,所以你可以尝试使用代理和配置"X"后关闭连接它们之间传输的数据字节的重试拉开始在0%层然后导致同样的错误,因为一段时间后,我们得到一层联系密切,又没有完全拉。因此,我们建议使用位于集群附近的注册表,以获得更高的吞吐量。

•也尝试重新启动AKS集群和gitlab上的docker映像注册表之间的通信管道,它暂时修复了这个问题,直到它再次发生。

请查看以下链接获取更多信息:-

https://docs.gitlab.com/ee/user/packages/container_registry/

相关内容

  • 没有找到相关文章

最新更新