• 问题现象

部署完master节点以后,执行kubectl get cs命令来检测组件的运行状态时,报如下错误:
Get “http://127.0.0.1:10251/healthz”: dial tcp 127.0.0.1:10251: connect: connection refused
kubeadm-1.19.0版本controller-manager及scheduler组件Unhealthy问题_sed

  • 原因分析

确认kube-scheduler和kube-controller-manager组件配置是否禁用了非安全端口

  • 解决方法

出现这种情况,是/etc/kubernetes/manifests/下的kube-controller-manager.yaml和kube-scheduler.yaml设置的默认端口是0导致的,解决方式是注释掉对应的port即可,操作如下:

[root@k8s-master ~]# cd /etc/kubernetes/manifests/
[root@k8s-master manifests]# ls
kube-apiserver.yaml  kube-controller-manager.yaml  kube-scheduler.yaml

修改kube-controller-manager.yaml文件:注释掉27行

[root@k8s-master manifests]# vim kube-controller-manager.yaml 
  27 #    - --port=0

修改kube-scheduler.yaml文件:注释掉19行,- --port=0

[root@k8s-master manifests]# vim kube-scheduler.yaml 
 19 #    - --port=0

在master节点上重启kubelet

[root@k8s-master manifests]# systemctl restart kubelet.service

再次查看master组件状态,状态正常
kubeadm-1.19.0版本controller-manager及scheduler组件Unhealthy问题_解决方法_02