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的狀態
可知已修復