type
status
date
slug
summary
category
tags
create_time
Aug 24, 2025 09:56 PM
icon
password
my_create_time
📝 前言
在 Kubernetes 集群中,节点组件共同协作,确保工作负载能够被正确调度、运行并对外提供服务。
前文我们已经介绍了 kubelet 节点组件 ,它主要负责 Pod 生命周期的管理。
而在 Pod 之间、以及 Pod 与外部之间的网络通信,则依赖于另一个重要的节点组件 —— kube-proxy。
本文将详细介绍 kube-proxy 的作用、工作原理及常见配置。
另外
kube-proxy
并不是一个必需的组件,现在通过一些第三方组件都可以替代该组件,例如:Cilium 、kube-router、kube-ovn 等。🧠 本章知识卡片

🚀 本章小节
1️⃣ 什么是 kube-proxy?
kube-proxy 是运行在每个工作节点上的网络代理组件,负责实现 Kubernetes Service 的抽象。
它的主要功能是:
- 维护 Service 与后端 Pod 的映射关系。
- 实现负载均衡,将请求分发到合适的 Pod。
- 提供多种代理模式(如 iptables、ipvs),优化流量转发性能。
简单来说,kube-proxy 负责保证 客户端访问 Service 时,流量能被正确转发到对应的 Pod。
2️⃣ kube-proxy 的工作原理
kube-proxy 的工作核心是 监听 API Server 中的 Service 与 Endpoints 资源变化,并将这些变化同步到本地节点的网络规则中,从而实现请求转发。
- 监听资源变化:
kube-proxy 通过 watch 机制监控 Service 与 Endpoints 的增删改。
- 更新转发规则:
根据 Service 与 Endpoints 的最新信息,kube-proxy 更新本地的转发规则。
- 实现流量转发:
当请求到达某个节点时,会根据配置的规则被转发到目标 Pod。
与 kubelet 不同,kube-proxy 并不直接管理容器,而是通过内核的网络功能(iptables/ipvs)或用户空间代理实现转发。
3️⃣ kube-proxy 工作流程时序图

4️⃣ kube-proxy 常见模式
kube-proxy 支持多种代理模式,不同模式下的性能和实现方式有所差异:
模式 | 特点 | 适用场景 |
userspace | 最早的模式,通过用户态进程接收流量并转发,效率低。 | 已弃用,不推荐使用 |
iptables | 使用内核的 iptables 规则进行流量转发,性能较好,适合中小规模集群。 | 默认模式(在部分版本中) |
ipvs | 使用 Linux 内核的 IP Virtual Server (IPVS) 模块,支持更多调度算法和更高性能。 | 大规模集群推荐使用 |
5️⃣ kube-proxy 配置与常见参数
kube-proxy 的配置文件一般位于:
/var/lib/kube-proxy/config.conf
,通过 kubeadm 部署的通常是在 kube-system 空间下的 kube-proxy configmap,可通过以下命令查看:常见配置参数包括:
参数 | 说明 |
--proxy-mode | 指定代理模式(userspace/iptables/ipvs) |
--cluster-cidr | Pod 网络 CIDR,用于判断哪些流量需要代理 |
--iptables-sync-period | iptables 规则同步的间隔时间 |
--ipvs-scheduler | 在 ipvs 模式下指定调度算法(如 rr、lc 等) |
--masquerade-all | 是否对所有流量进行 SNAT |
✅ 总结
kube-proxy
是 Kubernetes 网络通信的关键组件,它通过维护节点的转发规则,保证 Service 的访问能够正确路由到后端 Pod。在小规模集群中,iptables 模式已经能够满足需求,而在更大规模场景中,ipvs 模式能显著提升性能。
理解 kube-proxy 的工作原理与配置,有助于我们在排查网络问题时更快定位问题根源。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/kube-proxy-intro
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。