一个计算机技术爱好者与学习者

0%

好好学K8S:K8S中镜像拉取卡住问题

1. 问题描述

节点上已经存在某个镜像了,但是拉取镜像时卡住:Pulling image …

2. 问题原因

kubelet的配置中,serializeImagePulls默认值true,被启用时会通知 kubelet 每次仅拉取一个镜像。
如果有一个镜像拉取时卡住,那么其他镜像拉取时会等待前一个镜像完成,因此也会卡住。

参考文档Kubelet 配置 (v1beta1)

3. 解决办法一(推荐)

问题解决思路:找到拉取镜像卡住的pod,解决它

1
2
3
# kubectl get pod -A -owide | grep nodename
kubectl get pod -A -o wide --field-selector spec.nodeName=nodename
kubectl get pod -A --field-selector spec.nodeName=slave8 | egrep -v "Completed|Running"

4. 解决办法二

问题解决思路:拉取镜像改成并行。

1、修改kubelet配置

1
vim /var/lib/kubelet/config.yaml

添加:

1
serializeImagePulls: false

2、重启kubelet

1
systemctl restart kubelet