Kubernetes 网络原理与插件 专栏导览
专栏定位
本专栏聚焦 Kubernetes 网络的底层原理与主流 CNI 插件实现——从 Linux 网络栈的基础原语(Network Namespace、veth pair、bridge、iptables)出发,系统推导 Kubernetes 网络模型的设计约束与实现路径,深入解析 Flannel、Calico、Cilium 三大主流 CNI 插件的技术选型差异,并覆盖 Service 的流量转发底层实现(iptables/IPVS/eBPF)、NetworkPolicy 的安全隔离机制,以及 CoreDNS 的集群 DNS 架构。
Kubernetes 网络是整个云原生技术栈中最难理解、最容易出故障、最需要深度知识才能调优的模块。一个容器为什么能用 IP 直接访问另一个节点上的容器?跨节点流量经过了几次封包/解包?Service 的 ClusterIP 为什么 ping 不通却能 curl?这些看似简单的问题背后,是 Linux 内核网络栈数十年演进的结果。本专栏的目标是让读者真正理解这些问题的根因,而不仅仅是会用 kubectl。
目标读者
- 希望深入理解 Kubernetes 网络实现原理的平台工程师 / SRE
- 在生产环境中遇到 Pod 网络不通、跨节点延迟高、Service 故障等问题的运维工程师
- 正在选型 CNI 插件(Flannel vs Calico vs Cilium)的架构师
- 对 eBPF 在 Kubernetes 网络中应用感兴趣的基础设施工程师
专栏目录
| 序号 | 标题 | 核心内容 |
|---|---|---|
| 01 | 01 Kubernetes 网络模型——从 Linux 网络命名空间到 Pod IP | Linux Network Namespace 的本质;veth pair 的工作原理;Linux bridge 与 ARP;K8s 网络四大约束(Pod IP 可直接路由、无 NAT、Node 可访问所有 Pod);CNI 接口的诞生背景 |
| 02 | 02 CNI 体系详解——插件规范、调用链与主流实现对比 | CNI Spec v1.0 协议;kubelet 调用 CNI 的完整链路;ADD/DEL/CHECK 操作语义;IPAM 插件(host-local/dhcp/calico-ipam);Flannel/Calico/Cilium/WeaveNet 选型对比矩阵 |
| 03 | 03 Flannel 深度解析——VXLAN、Host-GW 与 UDP 模式 | Flannel 的子网分配机制与 etcd/Kubernetes API 存储;UDP 模式的 TUN 设备与用户态转发;VXLAN 模式的 VTEP 与封包路径;Host-GW 模式的路由表实现;三种模式的性能对比 |
| 04 | 04 Calico 深度解析——BGP 路由、eBPF 数据面与网络策略 | Calico 的纯三层路由理念;Felix 组件的 iptables 规则生成;BIRD 进程的 BGP Peer 建立;IPIP/VXLAN 跨子网封装;Calico eBPF 数据面替换 kube-proxy;NetworkPolicy 的 Calico 实现 |
| 05 | 05 Cilium 深度解析——eBPF 驱动的下一代网络与可观测性 | eBPF 在网络栈的 Hook 点(TC/XDP/Socket);Cilium 的 BPF Map 数据结构;替代 kube-proxy 的 eBPF Service 实现;Cilium Network Policy(L3/L4/L7);Hubble 的流量可观测原理 |
| 06 | 06 Service 底层实现——kube-proxy、iptables 与 IPVS | ClusterIP/NodePort/LoadBalancer/ExternalName 的语义;iptables 模式的规则链结构(KUBE-SERVICES/KUBE-SVC-xxx/KUBE-SEP-xxx);IPVS 模式的优势与 ipset;Endpoint Slice 的引入;Service 流量的完整路径追踪 |
| 07 | 07 NetworkPolicy 与 CoreDNS——网络安全策略与集群 DNS | NetworkPolicy 的选择器语义与默认行为;ingress/egress 规则的 iptables 实现;三种典型隔离场景;CoreDNS 的架构与插件链(cache/kubernetes/forward);Pod DNS 解析链路;ndots 参数与 DNS 调优 |
推荐阅读路径
底层原理路径(建议顺序阅读):01 → 02 → 03 → 04 → 05
快速上手路径(只关心 Service 和 DNS 故障排查):01 → 06 → 07
CNI 选型路径:02 → 03 → 04 → 05
前置知识
- Docker 专栏(Linux Namespace 与 CGroups 基础)
- K8s 架构 专栏(Pod/Node/kubelet 基础)
- TCP/IP 基础:IP 路由、ARP、VLAN、NAT 的概念
- iptables 基础操作(了解 chain 和 rule 的概念即可)
关联专栏
- Docker:容器网络基础(veth pair、Bridge)
- Linux 网络协议栈:iptables、网络命名空间、veth 的内核原理
- 服务网格:Istio/Envoy 对 K8s 网络的 L7 增强
- 生命周期与服务发现:Service/Ingress/DNS 的上层抽象