2. 网络拓扑核心组件:Node网络、Pod网络、Service网络、Ingress网络四层架构
Kubernetes 网络模型并非单一平面,而是由四个逻辑层次堆叠而成:Node 网络(物理/虚拟主机层)、Pod 网络(容器组互联层)、Service 网络(服务抽象与负载均衡层)、Ingress 网络(南北向流量接入层)。理解这四层的职责、边界及性能瓶颈,是进行网络拓扑调优的前提。
2.1 Node 网络:基础设施底座
Node 网络是集群的物理或虚拟化底层,决定了集群的带宽上限、延迟基线和跨节点连通性。所有 Pod 流量最终都要经过 Node 网络传输。
| 参数 | 说明 | 性能影响 |
|---|---|---|
| MTU | 最大传输单元(默认 1500,巨型帧 9000) | MTU 越大,单包有效载荷越高,CPU 开销越低 |
| 网卡队列 | RSS 多队列、RPS/RFS 分发 | 多队列提升并发收包能力,减少单核瓶颈 |
| 主机路由 | 节点路由表、策略路由 | 路由条目过多导致查表延迟增加 |
| 底层网络 | VPC、Underlay、BGP 互联 | 决定跨节点延迟和带宽隔离性 |
调优要点: 在云环境开启巨型帧(MTU 9000)可显著提升大包吞吐;物理机部署时启用网卡多队列并绑定到不同 CPU 核心。
2.2 Pod 网络:容器互联平面
Pod 网络是 K8s 网络模型的核心:每个 Pod 拥有一个集群内唯一的 IP 地址,所有 Pod 之间可以不经过 NAT 直接通信。该层由 CNI 插件实现。
- CNI 插件选型: Calico(纯三层/BGP)、Flannel(Overlay VXLAN)、Cilium(eBPF 加速)、Weave(加密 mesh)
- 封装开销: VXLAN 封装增加 50 字节头部,IPIP 封装增加 20 字节,eBPF 可绕过封装直接路由
- 网络策略: 基于 iptables/eBPF 实现 Pod 级防火墙,规则数量影响转发性能
- 跨节点通信: 依赖 Node 网络路由或 Overlay 隧道,延迟比同节点通信高 1~3 倍
性能对比: 同节点 Pod 通信走 veth pair + 网桥(延迟 ~0.1ms);跨节点 Pod 通信走 Overlay 隧道(延迟 ~0.5~2ms)。Cilium 的 eBPF 直路由模式可将跨节点延迟降低 30%~50%。
2.3 Service 网络:服务抽象与负载均衡
Service 引入虚拟 IP(ClusterIP),将一组 Pod 抽象为一个稳定的服务入口。kube-proxy 负责将 ClusterIP 流量转发到后端 Pod。
| 代理模式 | 实现机制 | 性能特征 |
|---|---|---|
| iptables | DNAT 规则链 | 规则数量 O(n),大规模集群性能下降明显 |
| IPVS | 内核态哈希表 | 规则数量 O(1),吞吐高,支持更多调度算法 |
| eBPF (Cilium) | BPF 程序直接转发 | 延迟最低,绕过 iptables 和 conntrack 开销 |
注意: ExternalTrafficPolicy 设置为 Local 时,Service 只转发流量到本地 Pod,可保留客户端源 IP,但可能导致负载不均。Cluster 模式会做二次转发,增加一跳延迟。
2.4 Ingress 网络:南北向流量接入
Ingress 是集群外部流量进入内部的七层网关,负责域名路由、TLS 终止、路径重写、限流等高级功能。Ingress Controller 是实际运行的代理组件。
- 常见 Controller: ingress-nginx(社区主流)、HAProxy Ingress、Traefik、Kong、AWS ALB Ingress Controller
- 性能瓶颈: TLS 握手开销、连接池管理、upstream 超时配置、worker 进程数
- Helm 可调参数:
controller.replicaCount、controller.config.proxy-body-size、controller.config.worker-processes、controller.config.keep-alive
最佳实践: 生产环境建议将 Ingress Controller 以 DaemonSet 部署并绑定 hostNetwork,减少 DNAT 跳数;开启 HTTP/2 和 keepalive 以减少连接建立开销。
2.5 四层架构的协同与性能影响
数据包从外部到达 Pod 的完整路径:Ingress → Node 网络 → Service(kube-proxy) → Pod 网络(CNI) → 容器。每一层都可能引入延迟和开销:
| 层级 | 典型延迟开销 | 主要优化方向 |
|---|---|---|
| Node 网络 | 0.1~0.5ms(同机房) | MTU、网卡队列、NUMA 亲和性 |
| Pod 网络 | 0.1~2ms(跨节点) | CNI 选型、封装模式、eBPF 加速 |
| Service 网络 | 0.05~0.3ms | IPVS/eBPF 替代 iptables |
| Ingress 网络 | 0.5~5ms(含 TLS) | worker 数、keepalive、TLS 会话复用 |
Helm 协同思路: 后续章节将深入讲解如何通过 Helm values 调整 CNI 配置、kube-proxy 模式、Ingress Controller 参数,实现四层网络的联合调优。例如:在 values 中设置
kubeProxy.mode: ipvs、cni.config.mtu: 9000、ingress-nginx.controller.config.worker-processes: auto。