根据 Pod 是否需要让已连接的网络直接通过 IP 访问,以及您对 IP 地址规模的要求,选择 Pod 网络配置。
是否需要直接 Pod IP 访问?
Pod 网络控制 Pod 如何获取 IP 地址,并定义 Pod 如何相互通信、群集节点和群集外部的目标。 Kubernetes 通过 容器网络接口 (CNI) 插件实现 Pod 网络,该插件管理 Pod IP 地址和网络连接。
设置 Pod 网络时,需要规划 IP 地址管理(IPAM)和路由和传输(数据平面)。
如果您的工作负载要求 Pod 可通过专用 IP 从连接到 Azure Kubernetes 服务 (AKS) 群集 VNet 的网络进行访问,请使用平面网络模型。 否则,请使用 Azure CNI Overlay。
IP 地址管理 (IPAM) 选项
设置 IPAM 时,可以选择具有 Azure CNI Overlay 的覆盖网络模型,或具有 Azure CNI Pod 子网 或 Azure CNI 节点子网 的平面网络模型:
下表比较了可用于 AKS Pod 网络的 IPAM 选项,包括其关键功能和缩放限制。
| IPAM 选项 | 网络组件示意图 | 特性和功能 |
|---|---|---|
| Overlay网络模型(采用 Azure CNI Overlay) |
|
• Pod IP 地址来自不属于 VNet 空间的叠加网络范围。 • 高度可缩放的网络,每个群集 最多包含 5,000 个节点 和 200,000 个 Pod。 节点限制、每节点 Pod 限制和 Pod 总数限制是彼此独立的。 • Pod 叠加地址空间可在彼此独立的集群之间重复使用。 Pod CIDR 不得与直接连接的网络发生重叠,包括对等互连的 VNet、通过 ExpressRoute 或 VPN 连接的网络,以及其他会暴露私有地址空间的路由。 • 双堆栈 (IPv4/IPv6) 支持。 • 无法直接从群集外部访问 Pod。 |
| 平面网络模型(使用 Azure CNI Pod 子网 或 节点子网) |
|
• 节点和 Pod IP 来自 VNet 空间。 • Pod 可通过连接的网络的专用 IP 地址访问。 Azure CNI Pod 子网可在已连接的 VNet 之间保留 Pod 的源 IP,而在使用 Azure CNI 节点子网时,集群 VNet 外部的目标看到的是节点的源 IP。 • Azure CNI Pod 子网选项包括用于效率的 动态 IP 分配 或用于缩放的 静态块分配 。 |
平面网络模型选项的注意事项
在确定 具有动态 IP 分配的 Azure CNI Pod 子网、 具有静态块分配的 Azure CNI Pod 子网和 Azure CNI 节点子网之间,请注意以下注意事项:
| 扁平化网络模型选项 | 注意事项 |
|---|---|
| 具有动态 IP 分配的 Azure CNI Pod 子网 | • 需要独立的节点和 Pod 子网,可以独立调整大小和缩放。 • 以 16 个批次将 Pod IP 地址分配给 Pod 子网中的节点。 • 受 VNet 配置专用 IP 地址限制的约束。 |
| 具有静态块分配的 Azure CNI Pod 子网 | • 需要仔细规划,因为需要为 Pod 分配特定范围的 IP,并确保它不会与其他子网重叠。 • 最多可以获取 1,000,000 个 IP。 • IP 可能无法高效使用,这可能导致被破坏。 |
| Azure CNI 节点子网 | • 可使用 AKS 管理的 VNet 或客户管理的 VNet 和子网的旧版选项。 • 节点和 Pod 共享节点子网,因此需要提前规划节点、Pod、缩放和升级的容量。 • 受 VNet 配置专用 IP 地址限制的约束。 |
路由和传输(数据平面)选项
设置数据平面时,可以在由 Cilium 提供支持的 CNI Azure、Azure iptables 数据平面和 BYO CNI 之间进行选择:
下表比较了可用于 AKS Pod 网络的数据平面选项及其关键功能。
| 数据平面选项 | 特性和功能 |
|---|---|
| 由 Cilium 提供支持的 Azure CNI | • 改进了 Linux 节点池的缩放和性能。 不支持 Windows 节点池。 • 内置 Cilium 网络策略执行。 • FQDN 筛选需要高级容器网络服务和 Kubernetes 1.29 或更高版本。 |
| Azure iptables | • 使用 Calico 执行Windows网络策略。 Azure Network Policy Manager(NPM)对 Windows 的支持将于 2026 年 9 月 30 日终止,对 Linux 的支持将于 2028 年 9 月 30 日终止。 新订阅无法再启用Azure NPM。 • 对于 Linux 群集,请使用由 Cilium 提供支持的 CNI Azure,而不是使用 Azure NPM。 • 支持 Kubernetes NetworkPolicy。 |
| BYO CNI | • 未安装托管 CNI 插件 - 可以使用支持 AKS 的任何选项。 • Microsoft 不支持 任何与 CNI 相关的问题。 |
AKS Pod 网络配置建议
我们的一般建议是使用 Azure CNI 重叠网络。 如果您需要从已连接的网络直接访问 Pod IP,并且对效率或规模有要求,请考虑使用采用动态 IP 分配的 Azure CNI Pod 子网或采用静态块分配的 Azure CNI Pod 子网。 Azure CNI 节点子网是旧选项;一般情况下,仅在群集需要 AKS 管理的 VNet 时使用它。