问题:
部署完master节点以后,执行kubectl get cs命令来检测组件的运行状态时,报如下错误:
[root@k8s-master-1 nfs]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Unhealthy Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
scheduler Unhealthy Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
etcd-2 Unhealthy HTTP probe failed with statuscode: 503
etcd-0 Unhealthy HTTP probe failed with statuscode: 503
etcd-1 Unhealthy HTTP probe failed with statuscode: 503
原因分析:
出现这种情况,是/etc/kubernetes/manifests/下的kube-controller-manager.yaml和kube-scheduler.yaml设置的默认端口是0导致的,解决方式是注释掉对应的port即可,操作如下:
[root@k8s-master-2 ~]# ll /etc/kubernetes/manifests/
total 12
-rw-------. 1 root root 3607 Feb 22 08:36 kube-apiserver.yaml
-rw-------. 1 root root 2828 Feb 22 08:33 kube-controller-manager.yaml
-rw-------. 1 root root 1414 Feb 22 08:34 kube-scheduler.yaml
kube-controller-manager.yaml文件修改:注释掉27行
27 # - --port=0
kube-scheduler.yaml配置修改:注释掉19行,- --port=0
19 # - --port=0
问题解决:
然后在三个master节点上重启kubelet,systemctl restart kubelet.service,然后重新查看就正常了
[root@k8s-master-2 ~]# systemctl restart kubelet.service
[root@k8s-master-2 ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-2 Healthy {"health":"true","reason":""}
etcd-0 Healthy {"health":"true","reason":""}
etcd-1 Healthy {"health":"true","reason":""}