问题描述:k8s集群部署之后,controller-manager和scheduler组件状态依然是Unhealthy

默认在1.19之后10252和10251都是绑定在127的,所以可以把端口绑定到物理机上 

[root@master01]# kubectl get cs
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"}

解决方案:

master01,master02,master03上都要修改,即所有主节点上都要修改。


[root@master01]#  vim /etc/kubernetes/manifests/kube-scheduler.yaml
修改如下内容:
把--bind-address=127.0.0.1变成--bind-address=192.168.40.180
把httpGet:字段下的hosts由127.0.0.1变成192.168.40.180           <两个地方>
把—port=0删除
#注意:192.168.40.180是k8s的控制节点master01的ip

[root@master01]#  vim /etc/kubernetes/manifests/kube-controller-manager.yaml
把--bind-address=127.0.0.1变成--bind-address=192.168.40.180
把httpGet:字段下的hosts由127.0.0.1变成192.168.40.180             <两个地方>
把—port=0删除

修改之后在k8s各个节点重启下kubelet
[root@master01 ~]#  systemctl restart kubelet
[root@master01 ~]#  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"} 

ss -antulp | grep :10251
ss -antulp | grep :10252
可以看到相应的端口已经被物理机监听了

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐