kubectl get cs显示unhealthy的解决办法

01、问题描述

使用kubectl get cs查看K8s组件状态,发现scheduler和controller-manager状态为Unhealthy,但集群可以正常使用。

[root@k8s-master ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS      MESSAGE                                                                                       ERROR
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused   
controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused   
etcd-0               Healthy     {"health":"true"}  

02、解决方式

健康检查报错,10250和10251端口不存在,开启scheduler, control-manager的10251,10252端口即可。

(1)修改以下配置文件:

静态pod的路径:/etc/kubernetes/manifests

将kube-scheduler.yaml和kube-controller-manager.yaml,把port=0那行注释

[root@k8s-master ~]# cd /etc/kubernetes/manifests/
[root@k8s-master manifests]# vi kube-scheduler.yaml 

vi kube-controller-manager.yaml

(2)无需重启即可生效,使用kubectl get cs重新查看组件状态,显示正常。

[root@k8s-master manifests]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"} 

 

posted @ 2023-06-19 18:21  Bypass  阅读(127)  评论(0编辑  收藏  举报