首页/云/Kubernetes 速查/kube-proxy 工作模式(iptables/IPVS)
网络与服务55 条

kube-proxy 工作模式(iptables/IPVS)

kube-proxy 负责把 Service 虚拟 IP 落到真实后端;iptables 模式通用、IPVS 模式转发效率更高(较新版本中 IPVS 已标记弃用,选型跟随发行版建议)。

Kubernetes 速查云更新于 2026-10-13

kube-proxy 的两种模式

kube-proxy 负责把 Service 的虚拟 IP 与端口落到真实后端 Pod 上,它有两种主流实现。iptables 模式用内核 NAT 规则做四层转发,通用性最好,规则量随 Service 与端点数量线性增长;IPVS 模式借助内核 IPVS 模块建立转发条目,用哈希表查找,端点规模大时性能更平稳,并支持多种调度算法。较新版本中 IPVS 模式已被标记为弃用,选型应跟随发行版与云厂商的建议。

两种模式对比

维度iptablesIPVS
实现机制内核 netfilter 规则链(KUBE-SERVICES 等)内核 IPVS 虚拟服务与真实服务器条目
查找方式规则顺序匹配,规模大时延迟增长哈希查找,端点规模大时更平稳
调度算法随机等基础行为支持轮询、最少连接等多种算法
依赖仅需 iptables 能力需要 IPVS 内核模块与对应工具
现状长期默认与通用选择较新版本中已标记弃用,跟随发行版建议

典型使用场景

  • 大集群 Service 数量多:关注转发时的规则量与查找开销,评估是否需要换模式
  • 连接不均衡:iptables 模式可能因规则顺序产生偏好,观察是否需要更均衡的调度算法
  • 内核能力受限环境:部分精简发行版缺少 IPVS 模块,只能使用 iptables
  • 排查转发异常:确认节点上的转发规则是否存在,判断 kube-proxy 是否在工作
  • 升级评估:模式切换需要逐节点滚动重启,属于有业务风险的变更

查看当前模式与规则

查看当前模式与规则
kubectl -n kube-system get cm kube-proxy -o yaml | grep -i -A2 mode      # 配置里声明的模式
kubectl -n kube-system logs ds/kube-proxy --tail=20 | grep -i -E 'ipvs|iptables'
# 以下命令需在节点上执行
# iptables -t nat -L KUBE-SERVICES -n | head -20     # iptables 模式下的规则链
# ipvsadm -Ln | head -30                             # IPVS 模式下的虚拟服务与后端

排查要点

现象检查点说明
Service 集群内不通对应节点上的转发规则规则缺失说明 kube-proxy 未生效或未同步
个别节点异常该节点 kube-proxy Pod 日志多副本部署时常见单点异常
大量 Service 时延迟升高节点规则数量与查找开销评估模式是否需要调整
切换模式后服务短暂异常滚动与就绪时间切换需重启组件,逐节点进行并留出观察窗口
kube-proxy 只是转发规则的实现者:Service 的端点计算、会话保持与拓扑感知由 API 侧与组件共同决定。集群内访问异常时,先确认 Endpoints 是否为空,再谈转发模式。
切换转发模式需要逐节点重启 kube-proxy,期间该节点上的 Service 转发会短暂异常。务必滚动进行、确认每个节点恢复后再继续,并避免与业务发布窗口重叠。

易错点

  • 把集群内访问不通直接归因到模式:Endpoints 为空或后端未就绪同样表现为不通,先确认后端再看转发
  • 在缺少 IPVS 内核模块的节点上启用 IPVS:组件起不来或规则为空,服务转发完全失效
  • 一次性重启全部 kube-proxy 节点:转发能力被同时削弱,期间 Service 访问大面积抖动
  • 忽略模式与版本演进:IPVS 已在较新版本标记弃用,选型前先看发行版支持的路线

数据来源与参考

  • Kubernetes 官方文档 · kube-proxy / Virtual IPs
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌