k8s Failed to create pod sandbox错误处理
k8s Failed to create pod sandbox错误处理
·
错误信息:
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to get sandbox image "k8s.gcr.io/pause:3.2": failed to pull image "k8s.gcr.io/pause:3.2": failed to pull and unpack image "k8s.gcr.io/pause:3.2": failed to resolve reference "k8s.gcr.io/pause:3.2": failed to do request: Head "https://k8s.gcr.io/v2/pause/manifests/3.2": dial tcp 74.125.204.82:443: i/o timeout
# 查看本机的镜像
# k8s + docker
$ docker images
# k8s + containerd
$ crictl images
很明显是无法拉取 k8s.gcr.io/pause:3.2 这个镜像,但我们的k8s明明使用的事pause:3.5的版本,这可能是该k8s版本的一个bug
临时解决方案:
可以从国内镜像仓库来拉取谷歌的镜像,然后重新tag。
以阿里云为例,访问下面地址,可搜索自己拉取失败的镜像。
容器镜像服务 (aliyun.com)https://cr.console.aliyun.com/cn-hangzhou/instances/images例如解决上面的问题,我们就搜索pause
# 如果你的k8s使用的事docker客户端
$ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
$ docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
# 如果使用containerd自带客户端
$ crictl pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
$ ctr -n k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
推荐解决方案:
# 查看 kubelet 配置
$ systemctl status -l kubelet
$ cd /var/lib/kubelet/
$ cp kubeadm-flags.env kubeadm-flags.env.ori
# 把 k8s.gcr.io/pause:3.3 改成 registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
$ cat /var/lib/kubelet/kubeadm-flags.env
$ KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2"
# 重启 kubelet 服务
$ systemctl daemon-reload
$ systemctl restart kubelet
更多推荐
已为社区贡献1条内容
所有评论(0)