Azure CNI 網路概觀
Kubernetes 支援各種外掛程式,可讓您新增新功能,並取代或增強現有的叢集行為。 容器網路介面 (CNI) 是一種規格,可讓開發人員建立外掛程式來設定容器網路。 Kubernetes 會套用 CNI 規格,在叢集上使用 CNI 外掛程式。
Azure CNI 外掛程式
Azure CNI 外掛程式可讓容器與 Azure 虛擬網路 (VNet) 之間進行共同作業。 在 Kubernetes 叢集中使用 Azure CNI,可為 Pod 指派 Azure 虛擬網路中的 IP 位址。 接著,該 Pod 就可以和其他裝置一樣在該虛擬網路上進行通訊。 它可以使用 VPN 或 ExpressRoute 連線到其他 Pod、對等互連網路或內部部署網路,或使用私人連結連線到其他 Azure 服務。
除了傳統的 Azure CNI 外掛程式之外,Azure Kubernetes Service (AKS) 還支援下列 CNI 外掛程式:
外掛程式 | 描述 | 使用時機 |
---|---|---|
Azure CNI 重疊 | 叢集節點會部署到 Azure 虛擬網路子網路。 Pod 會從私人 CIDR (無類別網域間路由選擇) 以邏輯方式指派 IP 位址,與裝載節點的虛擬網路不同。 叢集中的 Pod 和節點流量會使用重疊網路。 NAT 會使用節點的 IP 位址連線到叢集外部的資源。 | • 您想要調整為大量的 Pod,但是您虛擬網路中的 IP 位址空間有限。 • 大部分的 Pod 通訊是在叢集內。 • 您不需要虛擬節點之類的進階 AKS 功能。 |
由 Cilium 提供的 Azure CNI | 結合 Azure CNI 控制平面與 Cilium 資料平面。 Cilium 會強制執行網路原則來允許或拒絕 Pod 之間的流量,因此您不需要使用不同的網路原則引擎。 您可以在指派 Pod IP 的兩種不同方法之間做選擇:透過重疊網路或虛擬網路。 | • 您需要大型叢集的支援。 • 您想要更快的服務路由、更有效率的網路原則強制執行,以及更好的叢集流量可檢視性。 • 您想要使用具有高效能網路和安全性的傳統 Azure CNI 和 Azure CNI 重疊外掛程式的功能。 |
適用於 IP 和增強子網路支援動態配置的 Azure CNI | 使用傳統 Azure CNI 外掛程式的功能,並在其基礎上擴充,從與裝載 AKS 叢集的子網路區隔的子網路配置 Pod IP。 IP 會從 Pod 子網路動態配置給叢集 Pod。 節點和 Pod 子網路可以獨立調整,並在相同虛擬網路中的多個節點集區或叢集之間共用 Pod 子網路。 由於 Pod 有個別的子網路,因此您可以為其設定不同於節點原則的其他虛擬網路原則。 | • 您想要彈性地獨立調整節點和 Pod 子網路。 • 您需要大型叢集的支援,又不會犧牲效能。 • 您想要為 Pod 設定個別的虛擬網路原則。 |
自備 (BYO) CNI (部分機器翻譯) | AKS 叢集會部署,而不需要預先安裝 CNI 外掛程式。 您可以從該處安裝慣用 Azure 支援的非 Microsoft CNI 外掛程式。 Azure Kubernetes Service (AKS) 中應用程式的網路概念 (部分機器翻譯) 請記住,Microsoft 支援無法對使用 BYO CNI 部署之叢集中的 CNI 相關問題提供協助。 | • 您想要在 AKS 中使用您在內部部署 Kubernetes 環境中所使用的相同 CNI 外掛程式。 • 您想要使用支援的非 Microsoft 外掛程式中可用的進階功能。 |