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

Moh*_*iee 14 kubernetes

症状:

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

$ kubectl get cs / kubectl get componentstatuses
Run Code Online (Sandbox Code Playgroud)

我们得到这个错误:

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"}
Run Code Online (Sandbox Code Playgroud)

Moh*_*iee 28

解决方案:

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

$ sudo vi /etc/kubernetes/manifests/kube-scheduler.yaml
Run Code Online (Sandbox Code Playgroud)

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

$ sudo vi /etc/kubernetes/manifests/kube-controller-manager.yaml
Run Code Online (Sandbox Code Playgroud)

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

$ sudo systemctl restart kubelet.service
Run Code Online (Sandbox Code Playgroud)

这个问题的另一个原因:

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