Rancher 警告: 组件 controller-manager 不健康

页面显示不健康

rancher version:v2.5.12
tke(腾讯云k8s)k8s version:v1.18

腾讯云回复:为什么 controller-manager 和 scheduler 状态显示 Unhealthy · TKE Handbook
托管式集群就是这样,没版本解决

请问下大佬在rancher上怎么解决呢?没有master节点权限

这是因为 kube-controller-manager和kube-scheduler没有开启监控端口,您可以在/etc/kubernetes/manifests/kube-controller-manager.yaml和/etc/kubernetes/manifests/kube-scheduler.yaml注解此端口(- --port=0)以显示正常。

腾讯云的说他们的是设置为0的的就是注释的。他们解释说是因为托管方式集群的 apiserver 与 controller-manager 和 scheduler 不在同一个节点导致的了这个状态。有其他方式解决吗?

https://tencentcloudcontainerteam.github.io/tke-handbook/tke/why-controller-manager-and-scheduler-unhealthy.html

没有啥好办法,只能暂时忽略吧。只是UI上的提示,本身不影响使用。
因为Rancher使用的是Kubernetes的标准API来查看组件状态,不过这个API随着K8s的发展,也逐步废弃了。K8s也没有提供新的机制,并且K8s也不打算提供这类的检查接口,因为现在K8s发行版很碎片化。

Rancher的做法是默认以标准API探测组件健康,然后针对一些发行版忽略错误提示,参考:

全球来看,TKE还不是覆盖比较广的发行版,所以 detector 中没有纳入它。

大佬能在页面上忽略这个警告吗?

我在我的环境中修改后显示正常

Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
scheduler            Healthy   ok                              
controller-manager   Healthy   ok                              
etcd-0               Healthy   {"health":"true","reason":""}   

我修改了
kube-scheduler.yaml - --port=0 修改为 - --port=10251
kube-controller-manager - --port=0
备注:- --port=0没有注解。
重启 systemctl restart kubelt 后显示正常。

但他的是公有云,控制组件的的参数他改不了,:smile:

公有云托管的,没管理权限 ,尴尬