增加 Kubernetes 上的镜像拉取超时

增加 Kubernetes 上的镜像拉取超时

我们有多个 Kubernetes 集群,分布在多个位置,且所有位置的互联网速度各不相同。

有时,一些较小的镜像无法被 Kubernetes 拉取,Kubernetes 会进入ImagePullBackoff。运行时可以正常拉取这些镜像docker pull <image>。其中一些镜像也很大,大小在 6-10GB 范围内。

我们正在奔跑Kubespray 2.20安装 Kubernetes 1.24.6 并运行 docker 20.10 作为容器引擎。

我尝试将 API 服务器上的请求超时设置为 10 分钟甚至 30 分钟,但似乎无法调整图像拉取超时。四处搜索并找到针对此问题的各种其他响应,似乎所有响应都具有现已弃用并从 Kubernetes 中删除的标志。我们只是在寻找一种方法来增加 Kubernetes 中拉取图像的超时时间。

答案1

尝试更改 kubelet 配置,具体方法是增加以下位置记录的 RuntimeRequestTimeout 设置:https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/

请参阅以下潜在解决方案:

1)找到一个新的全局默认值(例如将其增加到 10 分钟或类似值,但这可能会产生意想不到的后果)

2)让用户通过 UI 配置此数字

3)让用户能够修改磁盘上的 kubelet 配置文件,并在该文件存在时更改 k8s 以使用该文件

还了解如何使 kubelet 标志 --image-pull-progress-deadline 可配置了解更多信息可能有助于解决您的问题。

相关内容