Error from server: Get “https:IP:10250/*“:dial tcp IP:10250: connect: no route to host

Error from server: Get “https://10.23.XX:10250/containerLogs/kpanda-system/kpanda-controller-manager-6c77785f75-htwbd/kpanda-controller-manager”: dial tcp 10.23.XX:10250: connect: no route to host

问题发现:
在集群中部署应用,查看状态,发现某个pod一直起不来。

kubectl get pod -A

问题追踪及解决:
查看该pod的日志发现如下:

kubectl logs $POD -n $NS
Error from server: Get "https://10.23.XX:10250/containerLogs/kpanda-system/kpanda-controller-manager-6c77785f75-htwbd/kpanda-controller-manager": dial tcp 10.23.XX:10250: connect: no route to host

在master节点上ping连接不上的这台主机发现可以ping通:

[root@10-23-xx-xx ~]#  ping node-1
PING node-1 (10.23.75.169) 56(84) bytes of data.
64 bytes from node-1 (10.23.xx.xx): icmp_seq=1 ttl=63 time=1.16 ms
64 bytes from node-1 (10.23.xx.xx): icmp_seq=2 ttl=63 time=0.257 ms
^C
--- node-1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.257/0.592/1.161/0.405 ms

再次检查端口是否打开,发现端口不通:

[root@10-23-xx-xx ~]# telnet 10.23.xx.xx 10250
Trying 10.23.xx.xx...

去该node节点上查看防火墙状态,发现防火墙是开着的,原因找到啦,问题就很好解决了。

[root@10-23-xx-xx ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2022-01-20 12:52:25 CST; 1h 6min ago
     Docs: man:firewalld(1)
 Main PID: 843 (firewalld)
    Tasks: 2
   Memory: 27.2M
   CGroup: /system.slice/firewalld.service
           └─843 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

120 12:52:35 10-23-xx-xx firewalld[843]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -D FORWARD -i doc...in?).
1月 20 12:52:35 10-23-75-169 firewalld[843]: WARNING: COMMAND_FAILED: 
'/usr/sbin/iptables -w2 -t filter -C FORW...name.
Hint: Some lines were ellipsized, use -l to show in full.
[root@10-23-xx-xx ~]# systemctl stop firewalld
[root@10-23-xx-xx ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

再次查看pod状态,已经正常running。

### 解决 'no route to host' 错误 当遇到 `dial tcp: lookup on no route to host` 的错误提示时,这通常意味着客户端尝试连接的目标主机不可达。对于 Kubernetes API Server (10.10.10.120:6443) 出现此类问题的情况,可以从以下几个方面进行排查: #### 1. 验证网络连通性 确保本地机器能够到达目标 IP 地址 10.10.10.120。可以使用 ping 或者 traceroute 工具来测试。 ```bash ping 10.10.10.120 traceroute 10.10.10.120 ``` 如果这些命令返回失败,则说明存在路由配置不当或防火墙阻止等问题[^1]。 #### 2. 检查防火墙设置 确认源端与目的端之间的任何中间设备上的防火墙规则允许 TCP 流量通过端口 6443。可以通过临时关闭防火墙来进行验证(注意安全风险),或者添加特定的放行规则。 ```bash sudo ufw allow 6443/tcp # 对于 UFW 用户空间工具 firewall-cmd --add-port=6443/tcp --permanent # 对于 firewalld ``` #### 3. DNS解析检查 虽然题目中的情况看起来像是直接指定了 IP 地址而不是域名,但如果涉及到其他服务发现机制的话,仍然要确保DNS正常工作并能正确解析相关名称。 #### 4. 容器平台内部通信状况评估 如果是容器化环境中部署的应用程序遇到了这个问题,还需要考虑集群内各节点间的网络插件是否安装配置得当以及CNI组件的工作状态如何。 #### 5. 使用 telnet 或 curl 命令进一步诊断 可以直接利用简单的命令行工具像telnet去探测远程服务器上指定的服务端口是否开放;也可以借助curl发起HTTP请求查看响应结果。 ```bash telnet 10.10.10.120 6443 curl https://10.10.10.120:6443/version --insecure ``` 以上方法可以帮助定位具体原因所在,并采取相应措施解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值