记录k8集群scheduler和controller-manager组件状态为Unhealthy的一次修复

1.查看k8集群各个组件的状态,kubectl get cs --all-namespaces

发现scheduler组件和controller-manager组件Unhealthy

2.报错表示连不上本地的10251和10252端口,那么首先查看其监听的端口是否存在

ss -ntlpu |grep 10251 

ss -ntlpu |grep 10252

 可知端口不存在。查看其后端服务是否存在

 3.查看其后端服务是否存在,kubectl get pod -A |grep kube-system

 

可知状态正常Running

那么此时就怀疑是不是容器执行没有开启这两个端口的策略,在机器上找到scheduler和controller-manager的配置yaml(以kube-scheduler举例子)

 4.检查组件yaml配置的端口(容器run时的参数配置了--port=0)。

 find ./ -name "*scheduler*"

可知scheduler组件和controller-manager组件的yaml中默认禁用了非安全端口,故删除--port=0(两者都删除此配置项)。

 

5.重启kubelet,systemctl restart kubelet,在查看cs的状态

可知已修复

 

posted @ 2020-12-21 11:14  frantzz  阅读(1594)  评论(0编辑  收藏  举报