首页 > 解决方案 > 如何解决 Kubernetes 中的调度程序和控制器管理器不健康状态

问题描述

症状:

当我们安装新的 Kubernetes 集群时。当我们执行以下命令时:

$ kubectl get cs / kubectl get componentstatuses

我们得到这个错误:

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-0               Healthy     {"health":"true"}

标签: kubernetes

解决方案


解决方案:

在所有主节点上修改以下文件:

$ sudo vi /etc/kubernetes/manifests/kube-scheduler.yaml

清除包含此短语的行 (spec->containers->command):---port=0

$ sudo vi /etc/kubernetes/manifests/kube-controller-manager.yaml

清除包含此短语的行 (spec->containers->command):---port=0

$ sudo systemctl restart kubelet.service

这个问题的另一个原因:

您可能在 docker 设置中使用了 http_proxy。在这种情况下,您必须在 no_proxy 中设置主节点地址


推荐阅读