网络
Kubernetes 网络是容器编排中最复杂的部分之一。它采用插件化架构,通过 CNI(Container Network Interface)规范支持多种网络方案。与单机 Docker 不同,Kubernetes 需要解决 Pod IP 唯一、网段隔离、跨节点通信、主机互通和服务发现等问题。
主流 CNI 插件包括 Flannel、Weave、Canal、Calico、Kube-router、Cilium、Antrea,以及云厂商的 AWS VPC CNI、Azure CNI、GKE 网络等。选择网络方案时需考虑性能、安全、运维、云兼容性和社区活跃度。
本章将介绍主流网络插件的原理、部署和实践。
章节目录
从高层次理解 Kubernetes 网络架构,包括网络模型、通信模式、网络策略和架构设计原则。
梳理 kube-proxy 三种 Linux 数据面模式的原理与演进:iptables 的规则增长问题、IPVS 的兴衰与弃用时间表(v1.35 弃用、v1.43 移除)、v1.33 GA 的 nftables 模式及其迁移注意事项,以及 Cilium 等 eBPF 方案替代 kube-proxy 的选择。
讲解 Kubernetes 的 IPv4/IPv6 双栈网络:控制面与节点的 CIDR 配置、Pod 与 Service 的地址族字段(ipFamilyPolicy/ipFamilies/podIPs/hostIPs)、ServiceCIDR 动态扩展(v1.33 GA)、CNI 与负载均衡器的双栈支持、纯 IPv6 集群与 NAT64/DNS64 出口、kubeadm 双栈初始化,以及迁移与排障要点。
IP 伪装代理(ip-masq-agent)通过配置 iptables 规则将 Pod IP 地址隐藏在集群节点 IP 后面,实现网络地址转换,确保集群内部流量能够正确访问外部网络。
深入介绍 Kubernetes 网络插件 Flannel 的工作原理,包括网络架构、配置方式、与 Docker 的集成以及路由机制,帮助理解容器网络的底层实现。
Calico 是一个基于 eBPF 和 iptables 的云原生网络和安全解决方案,提供扁平三层网络架构,支持灵活的网络策略和高性能容器网络互联。
Cilium 是一个基于 eBPF 技术的开源云原生网络、可观测性和安全解决方案。本文介绍 Cilium 的核心概念、架构组件、主要特性以及与 Hubble 的集成,帮助读者了解如何利用 eBPF 技术实现高性能的容器网络和安全策略。