共用方式為


升級 Azure CNI

不斷有新的 IP 指派管理 IPAM 模式和支援 Azure Kubernetes Service AKS 的資料平面技術。 現有的 AKS 叢集不可避免地需要升級至較新的 IPAM 模式和數據平面技術,才能存取最新的功能和可支援性。 本文提供指引,說明如何將現有的 AKS 叢集升級,以使用支援 IPAM 模式的 Azure CNI overlay 以及由 Cilium 支援的 Azure CNI 作為其數據平面。

升級至 Azure CNI 重疊

備註

如果叢集符合下列準則,您可以將現有 Azure CNI 叢集更新至重疊:

  • 叢集位於 Kubernetes 1.22+ 版本上。
  • 不使用動態 Pod IP 配置功能。
  • 未啟用網路原則。 您可以在升級之前卸載網路原則引擎,請參閱 卸載 Azure 網路原則管理員或 Calico
  • 不使用任何以 Docker 作為容器執行階段的 Windows 節點池。

備註

將現有的叢集升級至 CNI 重疊是不可逆的程序。

警告

在 Windows OS 組建 20348.1668 之前,Windows 重疊 Pod 有一項限制,因為主機網路 Pod 的 SNATing 封包不正確,這對升級至重疊的叢集有更有害的影響。 若要避免此問題, 請使用大於或等於 20348.1668的 Windows OS 組建。

警告

如果使用自訂 azure-ip-masq-agent 組態來包含不應該從 Pod SNAT 封包的其他 IP 範圍,升級至 Azure CNI 重疊可能會中斷這些範圍的連線。 來自重疊空間的 Pod IP 將無法由叢集節點以外的任何項目連線。 此外,對於足夠舊的叢集,可能有舊版 azure-ip-masq-agent 留下的 ConfigMap。 如果這個名為 azure-ip-masq-agent-config 的 ConfigMap 存在,並且不應該刻意保留原位,那麼在執行更新命令之前,應該先刪除它。 如果未使用自訂 ip-masq-agent 設定,則只有與 Azure ip-masq-agent ConfigMaps 相關的 azure-ip-masq-agent-config-reconciled ConfigMap 存在,而且升級程式期間會自動更新此設定。

升級流程會觸發每個節點集區同時重新製作映像。 不支援將各節點集區單獨升級為Overlay。 叢集網路的任何中斷都類似於節點映射升級或 Kubernetes 版本升級,其中會重新映射節點集區中的每個節點。

Azure CNI 叢集升級

使用 az aks update 命令來更新現有的 Azure CNI 叢集並啟用 Overlay。

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16

升級從舊版 CNI 時,需要 --pod-cidr 參數,因為 Pod 必須從新的 overlay 空間取得 IP,該空間不與現有的節點子網重疊。 Pod CIDR 也無法與節點集區的任何 VNet 位址重疊。 例如,如果您的 VNet 位址為 10.0.0.0/8,且您的節點位於子網路中 10.240.0 .0/16,則 --pod-cidr 無法與叢集上 10.0.0.0/8 或現有服務 CIDR 重疊。

Kubenet 叢集升級

使用 az aks update 命令更新現有 Kubenet 叢集,以便使用 Azure CNI Overlay。

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay 

由於叢集已經針對未與 VNet IP 空間重疊的 Pod 使用私人 CIDR,因此您不需要指定 --pod-cidr 參數,而且如果未使用 參數,Pod CIDR 會維持不變。

備註

從 Kubenet 升級到 CNI overlay 時,Pod 的路由不再需要使用路由表。 如果叢集使用客戶提供的路由表,則移轉作業期間會自動刪除用來將Pod流量導向正確節點的路由。 如果叢集使用受控路由表(AKS 會建立位於節點資源群組中的路由表),則會刪除該路由表作為移轉的一部分。

節點子網路集群升級

使用 az aks update 命令更新現有的節點子網叢集,以使用 Azure CNI Overlay。

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay 

備註

升級節點子網時,可以選擇只升級 IPAM 網路模式或升級資料平面。 不支援在單一作業中升級兩者。

升級至由 Cilium 提供的 Azure CNI

備註

如果叢集符合下列準則,您可以將現有叢集更新為由 Cilium 提供的 Azure CNI:

  • 叢集沒有任何 Windows 節點集區。

備註

當您在不同的網路原則引擎 (Azure NPM 或 Calico) 叢集中啟用 Cilium 時,網路原則引擎會卸載並以 Cilium 取代。 如需詳細資訊,請參閱 卸載 Azure 網路原則管理員或 Calico

警告

升級流程會觸發每個節點集區同時重新製作映像。 不支援個別升級每個節點集區。 叢集網路的任何中斷都類似於節點映射升級或 Kubernetes 版本升級 ,其中會重新映射節點集區中的每個節點。 只有在重新映像所有節點之後,Cilium 才會開始強制執行網路原則。

若要執行升級,您需要 Azure CLI 2.52.0 版或更新版本。 執行 az --version 以尋找目前安裝的版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI

使用下列命令,將現有叢集升級至由 Cilium 提供的 Azure CNI。 取代 <clusterName><resourceGroupName> 的值:

az aks update --name <clusterName> --resource-group <resourceGroupName> \
  --network-dataplane cilium