k8s集群部署之后,controller-manager和scheduler组件状态依然是Unhealthy
这是国外的一个网站的帖子部分内容:意思是从1.13版本开始,kube-controller-manager 和 kube-scheduler 使用使用10257、10259作为暴露的secure-ports(安全端口),而--insecure-ports(非安全端口)常用的10251、10252已经被废弃。Since 1.13, kube-controller-manager and kube-s
问题描述: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
可以看到相应的端口已经被物理机监听了
更多推荐
所有评论(0)