错误信息:

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
Failed create pod sandbox : rpc error : code = Unknown des c = NetworkPlugin cni failed to set up pod
OOMKilled: Pod 的内存使用超出了 resources.limits 中的限制,被强制杀死。 CrashLoopBackoff: Pod 进入崩溃-重启循环,重启间隔时间从 10 20 40 80 一直翻倍到上限 300 秒,然后以 300 秒为间隔无限重启。 Pod 一直 Pending: 这说明没有任何节点能满足 Pod 的要求,容器无法被调度。比如端口被别的容器用 hostPort 占用,节点有污点等。 Failed Create SandBox : Failed create pod .
新装Kubernetes,创建一个新 Pod ,启动 Pod 遇到 Create Pod Sandbox 或Run Pod Sandbox 异常。查看日志 # journalctl --since 15:00:00 -u kubelet Run Pod Sandbox from runtime service failed : rpc error : code = Unknown des c = failed pull ing ...
open /run/containerd/io.containerd.runtime.v2.task/ k8s .io/6d3eb5b522c3ac340207ccc30bd52faa536875b9af380f53a98abaa74857fb50/log.json: no such file or directory解决: 更新libseccomp版本