ZBLOG

Kubernetes 踩坑记之集群node无法访问service,基于ipvs

问题描述:

在使用 Kubernetes 搭建集群时,遇到了一个问题:在多节点部署的情况下,有些节点无法访问 Service。

解决步骤:

  1. 排查网络问题

首先,需要确认网络是否正常。可以通过 ping 命令或者 telnet 命令测试一下 Service 的 IP 是否可以访问。如果能够访问,则说明网络正常;如果无法访问,则需排查网络故障。

  1. 确认 IPVS 配置

如果网络正常,就需要确认 IPVS 是否配置正确。首先,需要检查 kube-proxy 的运行状态:

systemctl status kube-proxy

如果 kube-proxy 运行正常,就需要检查它的配置文件是否正确。可以通过以下命令查看 kube-proxy 的配置文件路径:

ps -ef | grep kube-proxy

然后,根据返回结果找到 kube-proxy 的配置文件,通常在 /var/lib/kube-proxy/config.yaml 中,确认其中是否包含正确的 IPVS 配置。

  1. 检查 iptables

如果 IPVS 配置正确,还需要确保 iptables 配置没有问题。可以通过以下命令查看 iptables 规则:

iptables-save

在规则中,需要确认以下两条规则是否存在:

-A KUBE-NODEPORTS -j KUBE-MARK-MASQ
-A KUBE-SERVICES ! -s 10.0.0.0/8 -d 10.96.0.0/12 -j KUBE-MARK-MASQ

这两条规则会将 Service 的流量转发到正确的节点上。

  1. 确认节点状态

如果以上步骤都没有问题,就需要检查节点是否正常。可以通过以下命令查看当前集群中的节点:

kubectl get nodes

然后,逐个检查节点是否正常运行,并且是否已经加入了集群。

总结:

在 Kubernetes 集群中,出现节点无法访问 Service 的情况可能是由于多种原因引起的,需要通过排查网络、IPVS 配置、iptables 和节点状态等多个方面来确定问题所在,并进行相应的处理。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=291

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?