Share via


教學課程:將節點移轉至 Azure Linux

在本教學課程五個部分的第三部分,您會將現有的節點移轉至 Azure Linux。 您可以使用下列其中一種方法,將現有的節點移轉至 Azure Linux:

  • 移除現有的節點集區,並在新增 Azure Linux 節點集區。
  • 就地 OS SKU 移轉 (預覽)。

如果您沒有要移轉至 Azure Linux 的任何現有節點,請跳至下一個教學課程。 在稍後的教學課程中,您會了解如何在叢集中啟用遙測和監視,以及升級 Azure Linux 節點。

必要條件

  • 在先前的教學課程中,您已為 AKS 叢集建立並部署 Azure Linux 容器主機叢集。 若要完成本教學課程,您必須將 Azure Linux 節點集區新增至現有的叢集。 如果您尚未完成此步驟,而且想要跟著做,請從教學課程 2:將 Azure Linux 節點集區新增至現有的 AKS 叢集開始。

    注意

    新增新的 Azure Linux 節點集區時,至少必須有一個新增為 --mode System。 否則,AKS 將不會允許您刪除現有的節點集區。

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

新增 Azure Linux 節點集區並移除現有的節點集區

  1. 使用 az aks nodepool add 命令新增新的 Azure Linux 節點集區。 此命令會使用 --mode System 旗標將新的節點集區新增至叢集,使其成為系統節點集區。 Azure Linux 叢集需要系統節點集區。

    az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
    
  2. 使用 az aks nodepool delete 命令移除現有的節點。

    az aks nodepool delete --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name>
    

就地 OS SKU 移轉 (預覽)

您現在可以將現有的 Ubuntu 節點集區移轉至 Azure Linux,方法是變更節點集區的 OS SKU,這會透過標準節點映像升級程序來復原叢集。 此新功能不需要建立新的節點集區。

限制

有數個設定可以封鎖 OS SKU 移轉要求。 若要確保移轉成功,請檢閱下列指導方針和限制:

  • OS SKU 移轉功能無法透過 Terraform、PowerShell 或 Azure 入口網站取得。
  • OS SKU 移轉功能無法重新命名現有的節點集區。
  • Ubuntu 和 Azure Linux 是唯一支援的 Linux OS SKU 移轉目標。
  • 移轉期間不得變更 AgentPool count 欄位。
  • 已啟用 UseGPUDedicatedVHD 的 Ubuntu OS SKU 無法執行 OS SKU 移轉。
  • 已啟用 CVM 20.04 的 Ubuntu OS SKU 無法執行 OS SKU 移轉。
  • 已啟用 Kata 的節點集區無法執行 OS SKU 移轉。
  • 不支援 Windows OS SKU 移轉。

必要條件

安裝 aks-preview 擴充功能

重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

  1. 使用 az extension add 命令安裝 aks-preview 延伸模組。

    az extension add --name aks-preview
    
  2. 更新延伸模組,使用 az extension update 命令來確保您有最新版本。

    az extension update --name aks-preview
    

註冊 OSSKUMigrationPreview 功能旗標

  1. 使用 az feature register 命令,在您的訂用帳戶上註冊 OSSKUMigrationPreview 功能旗標。

    az feature register --namespace Microsoft.ContainerService --name OSSKUMigrationPreview
    
  2. 使用 az feature list 命令確認註冊狀態。

    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/OSSKUMigrationPreview')].{Name:name,State:properties.state}"
    

    您的輸出看起來應類似下列的範例輸出:

    Name                                            State
    ----------------------------------------------  -------
    Microsoft.ContainerService/OSSKUMigrationPreview  Registered
    
  3. 使用 az provider register 命令重新整理 OSSKUMigrationPreview 功能旗標的註冊。

    az provider register --namespace Microsoft.ContainerService
    

移轉 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-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
    

    注意

    如果您在 OS SKU 移轉期間遇到問題,您可以復原為先前的 OS SKU

驗證 OS SKU 移轉

在測試叢集上完成移轉之後,您應該驗證下列項目以確保移轉成功:

  • 如果您的移轉目標是 Azure Linux,請執行 kubectl get nodes -o wide 命令。 輸出應該會顯示 CBL-Mariner/Linux 為您的 OS 映像,以及在核心版本尾端為 .cm2
  • 執行 kubectl get pods -o wide -A 命令以驗證所有 Pod 和精靈集都執行新的節點集區。
  • 執行 kubectl get nodes --show-labels 命令以驗證已升級節點集區中的所有節點標籤都是您所預期。

提示

建議您在移轉生產叢集之前監視服務的健康情況數週。

在生產叢集上執行 OS SKU 移轉

  1. 更新您現有的範本以設定 OSSKU=AzureLinux。 在 ARM 範本中,您會在 agentPoolProfile 區段中使用 "OSSKU: "AzureLinux"。 在 Bicep 中,您會在 agentPoolProfile 區段中使用 osSku: "AzureLinux"。 請確定您的 apiVersion 已設定為 2023-07-01 或更新版本。
  2. 重新部署叢集的 ARM 範本以套用新的 OSSKU 設定。 在此部署期間,您的叢集的行為就像是進行節點映像升級一樣。 您的叢集容量會激增,然後從新的 OS SKU 將現有的節點逐一重新啟動至最新的 AKS 映像。

復原

如果您在 OS SKU 移轉期間遇到問題,您可以復原為先前的 OS SKU。 若要這樣做,您必須變更範本中的 OS SKU 欄位,然後重新提交部署,這會觸發另一個升級作業,並將節點集區還原至其先前的 OS SKU。

  • 使用 az aks nodepool update 命令復原為先前的 OS SKU。 此命令會將節點集區的 OS SKU 從 Azure Linux 更新回 Ubuntu。

    az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
    

下一步

在本教學課程中,您已使用下列其中一種方法,將現有的節點移轉至 Azure Linux:

  • 移除現有的節點集區,並在新增 Azure Linux 節點集區。
  • 就地 OS SKU 移轉 (預覽)。

在下一個教學課程中,您會了解如何啟用遙測來監視叢集。