You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS虚拟机kubeadm集群中Kubernetes无法获取Ingress控制器日志求助

解决Kubectl无法获取Ingress Controller Pod日志(10250端口连接超时)的问题

你的问题核心在于kubectl尝试通过IPv4地址连接节点192.168.56.34的10250端口时超时,而netstat显示该端口仅在IPv6(tcp6)上监听——这说明kubelet服务当前只绑定了IPv6地址,导致IPv4请求无法到达。下面是一步步的解决方法:

1. 确认kubelet的监听配置

先在节点192.168.56.34上检查kubelet的启动参数,看是否明确指定了监听地址:

ps aux | grep kubelet

如果输出里没有--address或--listen-address参数,kubelet默认会监听[::](所有IPv6地址),但不会主动监听IPv4的10250端口,这就是连接超时的根源。

2. 修改kubelet配置,强制监听IPv4

kubeadm部署的集群中,kubelet的systemd配置通常在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf。编辑这个文件:

vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

找到KUBELET_EXTRA_ARGS行(没有的话可以新增),添加--address=0.0.0.0参数,让kubelet同时监听所有IPv4和IPv6地址:

Environment="KUBELET_EXTRA_ARGS=--address=0.0.0.0"

3. 重启kubelet服务

保存配置后,重新加载systemd并重启kubelet:

systemctl daemon-reload
systemctl restart kubelet

4. 验证端口监听状态

再次执行netstat命令,确认10250端口同时监听IPv4和IPv6:

netstat -tulpn | grep 10250

正常情况下会看到类似输出:

tcp        0      0 0.0.0.0:10250           0.0.0.0:*               LISTEN      1234/kubelet
tcp6       0      0 :::10250                :::*                    LISTEN      1234/kubelet

额外检查:防火墙规则

如果以上步骤完成后还是超时,检查节点的防火墙是否允许10250端口的入站流量:

  • 对于firewalld:
firewall-cmd --add-port=10250/tcp --permanent
firewall-cmd --reload
  • 对于iptables:
iptables -A INPUT -p tcp --dport 10250 -j ACCEPT

完成这些操作后,再尝试执行kubectl logs命令,应该就能正常获取Pod日志了。

内容的提问来源于stack exchange,提问作者BOUKANDOURA Mhamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:44:36