k8s集群中控制节点处于NotReady,怎么办?
昨天成功部署了单master节点的k8s集群,可是master节点处于NotReady?(今天刚注意到)
如何解决呢?
排查思路如下:
- 可能是容器运行时(Containerd/Docker)未正常启动
- 可能是网络插件calico的配置文件,有问题
首先,排查网络插件calico
[root@103 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-b48d575fb-jngns 1/1 Running 0 13h
calico-node-59gdp 1/1 Running 0 13h
calico-node-m6x29 1/1 Running 0 13h
calico-node-tlqdq 1/1 Running 0 13h
coredns-567c556887-58cwt 1/1 Running 0 16h
coredns-567c556887-wdcrh 1/1 Running 0 16h
etcd-103.org 1/1 Running 2 16h
kube-apiserver-103.org 1/1 Running 2 16h
kube-controller-manager-103.org 1/1 Running 2 16h
kube-proxy-6wt6v 1/1 Running 0 16h
kube-proxy-nfwgf 1/1 Running 0 16h
kube-proxy-tv5t5 1/1 Running 0 16h
kube-scheduler-103.org 1/1 Running 2 16h# 根据以上内容,大致可以看出 calico正常运行。故重点查看容器运行时,是否存在问题。
接下来,排查容器运行时
说明,此次的集群中,我安装了docker、containerd。docker负责拉取、打包镜像。containerd 用于解压、使用镜像。
#查看 docker运行状态,结果 没有该服务
[root@103 ~]# systemctl status docker
Unit docker.service could not be found.# 开启docker、并设置开机自启
[root@103 ~]# systemctl start docker; systemctl enable docker --now
Failed to start docker.service: Unit docker.service not found.
Failed to enable unit: Unit file docker.service does not exist.根据上面的输出提示,可知: docker 可能未安装
[root@103 ~]# yum install docker-ce -y #重新安装docker
重启启动docker服务
再次查看 节点状态
可以看到,已经是Ready了。(既然 已经Ready,也从另一个角度说明了 containerd应该没有问题。)
不相信的话,systemctl status containerd 查看以下。
ok,问题解决,撤!
如要转载,请附上原文链接!