選擇 Pod 網路配置時,請根據 Pod 是否需要從連接網路直接存取 IP 以及你的 IP 位址規模需求來決定。
你需要直接存取 Pod IP 嗎?
Pod 網路控制 Pod 如何取得 IP 位址,並定義 Pod 之間、叢集節點及叢集外目的地的通訊方式。 Kubernetes 透過 容器網路介面(CNI) 外掛實作莢果網路,該外掛管理莢果的 IP 位址與網路連線。
在設定 Pod 網路時,你需要規劃 IP 位址管理(IPAM)以及路由與傳輸(資料平面)。
如果您的工作負載需要讓 Pod 可從連線至 Azure Kubernetes Service (AKS) 叢集 VNet 的網路透過私人 IP 存取,請使用平面網路模型 (Flat Networking Model)。 否則,就使用 Azure CNI Overlay。
IP 位址管理(IPAM)選項
在設定 IPAM 時,你可以選擇使用 Azure CNI Overlay 的 Overlay Networking Model,或是 Azure CNI Pod 子網或 Azure CNI 節點子網的扁平網路模型:
下表比較了可用於 AKS Pod 網路的 IPAM 選項,包括其主要特性與規模限制。
| IPAM 選項 | 網路元件示意圖 | 功能與特色 |
|---|---|---|
| 覆蓋網路模型 (使用 Azure CNI 覆蓋) |
|
• Pod IP 來自不屬於 VNet 空間的覆蓋範圍。 • 高度可擴展的網路,每個叢集最多 可支援 5,000 個節點 及 200,000 個 pod。 節點限制、每個節點的 Pod 限制及 Pod 總數限制彼此獨立。 • Pod 覆蓋位址空間可在獨立叢集間重複使用。 Pod CIDR 不得與直接連接的網路重疊,包括對等 VNet、透過 ExpressRoute 或 VPN 連接的網路,以及其他暴露私有位址空間的路由。 • 支援雙堆疊(IPv4/IPv6)。 • Pod 無法直接從叢集外部存取。 |
| Flat Networking Model(使用 Azure CNI Pod 子網 或 節點子網) |
|
• 節點與 pod IP 來自 VNet 空間。 • Pod 可透過連接網路的私有 IP 位址存取。 Azure CNI Pod 子網會保留連接 VNet 間的 Pod 來源 IP,而叢集外的目的地則會看到 Azure CNI Node Subnet 的節點來源 IP。 • Azure CNI Pod 子網路選項包括動態 IP 分配 以提升效率,或靜 態區塊分配 以提升規模。 |
平面網路模型選項的考量
在選擇 Azure CNI Pod 子網(Dynamic IP Allocation)、 Azure CNI Pod 子網(含靜態區塊配置)或 Azure CNI 節點子網時,請考慮以下幾點:
| 平面網路模式選項 | 考慮事項 |
|---|---|
| Azure CNI Pod 子網與動態 IP 分配 | • 需要獨立的節點與 pod 子網,且可獨立大小與縮放。 • 將 pod IP 位址分配給 pod 子網的節點,每批 16 個。 • 受 VNet 設定的私人 IP 位址限制限制。 |
| Azure CNI Pod 子網與靜態區塊配置 | • 需要謹慎規劃,因為你需要為你的 pods 分配特定範圍的 IP,並確保它不會與其他子網重疊。 • 最高可取得 1,000,000 個 IP。 • 知識產權可能無法有效利用,導致浪費。 |
| Azure CNI 節點子網路 | • 可使用 AKS 管理的 VNet 或客戶管理的 VNet 及子網的舊有選項。 • 節點與 pod 共享節點子網,因此你需要事先規劃節點、Pod、擴展與升級的容量。 • 受 VNet 設定的私人 IP 位址限制限制。 |
路由與傳輸(資料平面)選項
在設定資料平面時,你可以選擇 Azure CNI Powered by Cilium、Azure iptables 資料平面,以及 BYO CNI:
下表比較了 AKS Pod 網路可用的資料平面選項及其主要功能。
| 資料平面選項 | 功能與特色 |
|---|---|
| Cilium 提供的 Azure CNI | • 提升 Linux 節點池的規模與效能。 不支援 Windows 節點集區。 • 內建 Cilium 網路政策執行功能。 • FQDN 篩選必須使用進階容器網路服務和 Kubernetes 1.29 版或更新版本。 |
| Azure iptables | • 使用 Calico 執行 Windows 網路政策。 Azure 網路政策管理員(NPM)支援將於 2026 年 9 月 30 日(Windows)及 Linux (2028 年 9 月 30 日)結束。 新訂閱無法再啟用 Azure NPM。 • 對於 Linux 叢集,請使用 Azure CNI Powered by Cilium,而非 Azure NPM。 • 支援 Kubernetes NetworkPolicy。 |
| BYO CNI | • 未安裝受管理的 CNI 外掛——你可以使用任何支援 AKS 的選項。 • Microsoft 不支援 任何與 CNI 相關的問題。 |
AKS Pod 網路建議
我們 一般建議 使用 Azure CNI Overlay。 如果你需要從連接網路直接存取 Pod IP,且有效率或規模需求,可以考慮使用 Azure CNI Pod 子網搭配動態 IP 配置,或 Azure CNI Pod 子網搭配靜態區塊配置。 Azure CNI Node Subnet 是舊有選項;一般來說,只有在你需要 AKS 管理的叢集 VNet 時才使用。