前几天嫌服务器上镜像太多占空间,全部删掉了,今天看到 microk8s 更新了 1.30 版本,果断更新,结果集群跑不起来了。
先通过 microk8s.kubectl get pods --all-namespaces
命令看看 pod
状态。
如上图可以看到,所有的业务 pod
都是 Unknown
状态,然后有一个 calico-node
的系统 pod
卡在 Init
状态,初步怀疑是 calico-node
初始化卡住了,导致集群起不起来。
执行命令 microk8s.kubectl describe pods calico-node-pnrbj -n kube-system
可以看到如下输出:
如上图所示,calico-node
启动时,需要拉取一个 registry.k8s.io/pause:3.7
镜像,但是由于某些网络原因导致拉取不下来。
这时候我们可以采取换一个国内源拉取这个镜像,然后重新打个 tag
的方式来解决。
registry.k8s.io/pause:3.7
对应阿里源上的镜像是 registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
。
执行命令:
microk8s.ctr image pull registry.k8s.io/pause:3.7
如下图所示,镜像拉取成功。
使用如下命令重新打标签:
microk8s.ctr image tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7 registry.k8s.io/pause:3.7
重启下集群,或者等一会儿就好啦~