升級 Azure Kubernetes Service (AKS) IPAM 模式和數據平面技術
由於一律有新的IP指派管理 (IPAM) 模式和支援 Azure Kubernetes Service (AKS) 的數據平面技術,因此必須經歷現有 AKS 叢集需要升級至較新的IPAM模式和數據平面技術,才能存取最新功能和支援性的情況。 本文提供將現有 AKS 叢集升級為 IPAM 模式的 Azure CNI 重疊,以及由 Cilium 提供作為其數據平面的 Azure CNI 重疊的指引。
將現有的叢集升級至 Azure CNI 重疊
注意
如果叢集符合下列準則,您可以將現有 Azure CNI 叢集更新至重疊:
- 叢集位於 Kubernetes 1.22+ 版本上。
- 不使用動態 Pod IP 配置功能。
- 未啟用網路原則。 您可以在升級之前卸載網路原則引擎,請參閱 卸載 Azure 網路原則管理員或 Calico。
- 不使用任何 Windows 節點集區搭配 Docker 作為容器執行階段。
注意
將現有的叢集升級至 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 存在,而且升級程式期間會自動更新此設定。
升級程序會觸發每個節點集區同時重新映像。 不支援個別升級每個節點集區至重疊。 叢集網路的任何中斷都類似於節點映像升級或 Kubernetes 版本升級,其中節點集區中的每個節點都會重新映像。
Azure CNI 叢集升級
使用 [az aks update
][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 必須從新的重疊空間取得 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
][az-aks-update] 命令,將現有的 Kubenet 叢集更新為使用 Azure CNI 重疊。
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 重疊時,Pod 路由將不再需要路由表。 如果叢集使用客戶提供的路由表,則移轉作業期間會自動刪除用來將 Pod 流量導向正確節點的路由。 如果叢集使用受控路由表 (路由表由 AKS 建立,且位於節點資源群組中),該路由表將會在移轉過程中刪除。
將現有叢集升級至由 Cilium 提供的 Azure CNI
注意
如果叢集符合下列準則,您可以將現有叢集更新為由 Cilium 提供的 Azure CNI:
- 叢集會使用 Azure CNI 重疊或使用動態 IP 配置的 Azure CNI。 這不包括 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