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

Kubernetes集群内部Service IP无法访问关联Nginx Pod故障问询

Kubernetes Service ClusterIP无法转发流量故障根因排查

前置已验证项(均正常)

  • Pod运行状态正常
  • Service selector与Pod标签完全匹配
  • Pod内业务端口监听正常,可通过Pod IP直接访问服务
  • Service与Pod在同命名空间,DNS解析Service域名可正常得到ClusterIP
  • Service Endpoint配置正确,可直接通过Endpoint IP访问服务

可能故障根因及排查方案

1. kube-proxy组件异常,未生成正确的转发规则

kube-proxy负责维护Service到后端Pod的转发规则,组件异常会直接导致ClusterIP无法访问

  • 排查步骤:
    • 执行kubectl get pods -n kube-system | grep kube-proxy,确认所有节点上的kube-proxy Pod都处于Running状态
    • 若集群使用iptables转发模式:执行iptables-save | grep <替换为你的Service ClusterIP>,确认存在指向对应Endpoint IP的DNAT规则
    • 若集群使用ipvs转发模式:执行ipvsadm -Ln | grep <替换为你的Service ClusterIP>,确认存在指向对应Endpoint IP的虚拟服务规则
  • 修复方案:kube-proxy异常时可直接删除异常Pod,DaemonSet会自动重建,重建后规则会自动刷新

2. 节点内核参数或防火墙规则拦截流量

  • 排查步骤:
    • 执行sysctl net.ipv4.ip_forward,确认输出值为1,若为0说明节点未开启IP转发,流量无法跨网络栈转发
    • 执行iptables -L FORWARD -n -v,确认没有REJECT/DROP规则匹配Service ClusterIP网段(默认通常为10.96.0.0/12)
  • 修复方案:
    • 临时开启IP转发:sysctl -w net.ipv4.ip_forward=1,永久生效需修改/etc/sysctl.conf中对应配置
    • 删除拦截ClusterIP网段的防火墙规则

3. CNI网络插件故障

  • 排查步骤:
    • 执行kubectl get pods -n kube-system | grep -E 'calico|flannel|cni',确认所有CNI相关Pod处于Running状态
    • 若Pod与发起请求的Pod不在同一节点,直接跨节点ping Pod IP,验证跨节点Pod连通性,若不通则为CNI路由配置异常
  • 修复方案:重建异常CNI Pod,根据对应CNI官方文档修正路由配置

4. kube-proxy ipvs模式依赖内核模块缺失

  • 排查步骤:若集群使用ipvs转发模式,执行lsmod | grep -E 'ip_vs|ip_vs_rr|ip_vs_wrr|ip_vs_sh|nf_conntrack',确认所有ipvs依赖模块都已加载
  • 修复方案:加载缺失的内核模块后重启kube-proxy Pod即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:27:00