文章目录

前提问题说明分析原因解决问题另一中错误:Unable to connect to the server: dial tcp 123.56.91.155:6443: i/o timeout

前提

架构:keepalived+haproxy+kubernetes

问题说明

kubernetes集群好久不用了,今天打开集群执行一个kubectl get nodes命令,报错如下: Unable to connect to the server: dial tcp 192.168.2.XXX:16443: connect: no route to host

分析原因

出现这个问题几种原因,

集群坏了:如果报错的IP是master1的节点IP或虚拟IP(vip)加16443端口号,执行kubectl命令还报上面的错误,说明集群坏了,需要逐步排查原因。/root/.kube/config中的IP地址错误:如果错误中的IP地址不是master1的节点IP或虚拟IP(vip)加16443端口号,需要修改配置文件中的IP。一般改为虚拟IP(vip)+16443端口号。haproxy:由于haproxy配置的是监听16443端口,也是集群的入口。因为报错的端口号是16443,所以要检查是否是haproxy的IP问题,如果是的话要修改haproxy配置文件,然后重启haproxysystemctl restart haproxy

解决问题

经排查,我的问题属于第二种,因为报错的意思是没有找不到192.168.2.XXX:16443这个路由,于是检查config文件:

vim /root/.kube/config

查看IP是否正确,经检查,我虚拟IP为:192.168.2.249,而这里显然不是,将IP修改为192.168.2.249:16443

保存退出后再次查看节点状态,kubectl命令就可以正常使用了。

另一中错误:Unable to connect to the server: dial tcp 123.56.91.155:6443: i/o timeout

Unable to connect to the server: dial tcp 123.56.91.155:6443: i/o timeout 刚开始爆出的错误是这个,一看这个IP就不是我当初创建集群时的IP,而是一个阿里云公网IP,其实进入config文件中修改成自己集群的IP就可以了。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: