在本教學課程五個部分的第三部分,您會將現有的節點移轉至 Azure Linux。 您可以使用下列其中一種方法,將現有的節點移轉至 Azure Linux:
- 移除現有的節點集區,並在新增 Azure Linux 節點集區。
- 就地 OS SKU 移轉。
如果您沒有要移轉至 Azure Linux 的任何現有節點,請跳至下一個教學課程。 在稍後的教學課程中,您會了解如何在叢集中啟用遙測和監視,以及升級 Azure Linux 節點。
這很重要
從 2025 年 11 月 30 日開始,AKS 將不再支援或提供 Azure Linux 2.0 的安全性更新。 從 2026 年 3 月 31 日開始,節點映像將會移除,而且您將無法調整節點集區。 將 節點集區升級 至支援的 Kubernetes 版本,或移轉至 osSku AzureLinux3,以升級至受支援的 Azure Linux 版本。 如需詳細資訊,請參閱 AKS 上的 [淘汰] Azure Linux 2.0 節點集區。
先決條件
在先前的教學課程中,您已為 AKS 叢集建立並部署 Azure Linux 容器主機叢集。 若要完成本教學課程,您必須將 Azure Linux 節點集區新增至現有的叢集。 如果您尚未完成此步驟,而且想要跟著做,請從教學課程 2:將 Azure Linux 節點集區新增至現有的 AKS 叢集開始。
附註
新增新的 Azure Linux 節點集區時,至少必須有一個新增為
--mode System。 否則,AKS 將不會允許您刪除現有的節點集區。您需要最新版的 Azure CLI。 執行
az --version以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
新增 Azure Linux 節點集區並移除現有的節點集區
- 使用
az aks nodepool add命令新增新的 Azure Linux 節點集區。 此命令會使用--mode System旗標將新的節點集區新增至叢集,使其成為系統節點集區。 Azure Linux 叢集需要系統節點集區。
# Declare environment variables with a random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export NODE_POOL_NAME="np$RANDOM_SUFFIX"
az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinux
結果:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
"name": "systempool",
"provisioningState": "Succeeded"
}
- 使用
az aks nodepool delete命令移除現有的節點。
就地 OS SKU 移轉
您現在可以將現有的 Ubuntu 節點集區移轉至 Azure Linux,方法是變更節點集區的 OS SKU,這會透過標準節點映像升級程序來復原叢集。 此新功能不需要建立新的節點集區。
限制
有數個設定可以封鎖 OS SKU 移轉要求。 若要確保移轉成功,請檢閱下列指導方針和限制:
- OS SKU 移轉功能無法透過 PowerShell 或 Azure 入口網站取得。
- OS SKU 移轉功能無法重新命名現有的節點集區。
- Ubuntu、Azure Linux 和 Azure Linux with OS Guard 是唯一支援的 Linux OS SKU 移轉目標。
- 預設情況下,具有 OS Guard 的 Azure Linux 需要信任啟動,客戶必須啟用信任啟動,才能使用 OS Guard 移轉至 Azure Linux。 由於無法在現有節點集區上啟用信任啟動,因此可能需要建立新的節點集區。
- 使用僅限第 1 代 VM 大小的客戶將無法移轉至具有 OS Guard 的 Azure Linux,因為沒有支援的第 1 代映像。 他們需要建立具有支援第 2 代的 VM 大小的新節點集區。
- 已啟用
UseGPUDedicatedVHD的 Ubuntu OS SKU 無法執行 OS SKU 移轉。 - 已啟用 CVM 20.04 的 Ubuntu OS SKU 無法執行 OS SKU 移轉。
- 已啟用 Kata 的節點集區無法執行 OS SKU 移轉。
- 不支援 Windows OS SKU 移轉。
- 支援從 Mariner 至 Azure Linux 的 OS SKU 移轉,但不支援復原至 Mariner。
先決條件
- 具有至少一個 Ubuntu 節點集區的現有 AKS 叢集。
- 建議您先確保工作負載在 Azure Linux 容器主機上設定並成功執行,然後再嘗試使用 OS SKU 移轉功能,方法是在開發/生產環境中部署 Azure Linux 叢集,並驗證您的服務維持良好狀態。
- 在生產叢集上使用該程序之前,在測試/開發中確保移轉功能對您可運作。
- 確保 Pod 有足夠的 Pod 中斷預算,可讓 AKS 於升級期間在 VM 之間移動 Pod。
- 您需要 Azure CLI 2.61.0 (部分機器翻譯) 版或更高版本。 執行
az --version以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。 - 如果您使用 Terraform,則須具備 v3.111.0 (英文) 或更新版本的 AzureRM Terraform 模組。
移轉 Ubuntu 節點集區的 OS SKU
- 使用
az aks nodepool update命令將節點集區的 OS SKU 移轉至 Azure Linux。 此命令會將節點集區的 OS SKU 從 Ubuntu 更新為 Azure Linux。 OS SKU 變更會觸發立即升級作業,這需要幾分鐘的時間才能完成。
az aks nodepool update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --os-sku AzureLinux
結果:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureLinux",
"provisioningState": "Succeeded"
}
附註
如果您在 OS SKU 移轉期間遇到問題,您可以復原為先前的 OS SKU。
驗證 OS SKU 移轉
在測試叢集上完成移轉之後,您應該驗證下列項目以確保移轉成功:
- 如果您的移轉目標是 Azure Linux,請執行
kubectl get nodes -o wide命令。 輸出應該會顯示Microsoft Azure Linux 3.0為您的 OS 映像,以及在核心版本尾端為.azl3。 - 執行
kubectl get pods -o wide -A命令以驗證所有 Pod 和精靈集都執行新的節點集區。 - 執行
kubectl get nodes --show-labels命令以驗證已升級節點集區中的所有節點標籤都是您所預期。
秘訣
建議您在移轉生產叢集之前監視服務的健康情況數週。
在生產叢集上執行 OS SKU 移轉
- 更新您現有的範本以設定
OSSKU=AzureLinux。 在 ARM 範本中,您會在"OSSKU": "AzureLinux"區段中使用agentPoolProfile。 在 Bicep 中,您會在osSku: "AzureLinux"區段中使用agentPoolProfile。 最後,針對 Terraform,您可在 [os_sku = "AzureLinux"] 區段中使用default_node_pool。 請確定您的apiVersion已設定為2023-07-01或更新版本。 - 重新部署叢集的 ARM、Bicep 或 Terraform 範本以套用新的
OSSKU設定。 在此部署期間,您的叢集的行為就像是進行節點映像升級一樣。 您的叢集容量會激增,然後從新的 OS SKU 將現有的節點逐一重新啟動至最新的 AKS 映像。
復原
如果您在 OS SKU 移轉期間遇到問題,您可以復原為先前的 OS SKU。 若要這樣做,您必須變更範本中的 OS SKU 欄位,然後重新提交部署,這會觸發另一個升級作業,並將節點集區還原至其先前的 OS SKU。
附註
OS SKU 移轉不支援復原至 OS SKU Mariner。
- 使用
az aks nodepool update命令復原為先前的 OS SKU。 此命令會將節點集區的 OS SKU 從 Azure Linux 更新回 Ubuntu。
後續步驟
在本教學課程中,您已使用下列其中一種方法,將現有的節點移轉至 Azure Linux:
- 移除現有的節點集區,並在新增 Azure Linux 節點集區。
- 就地 OS SKU 移轉。
在下一個教學課程中,您會了解如何啟用遙測來監視叢集。