共用方式為


指導教學:將 Azure Linux with OS Guard (預覽) 節點集區新增至現有的 Azure Kubernetes Service (AKS) 叢集

在 Azure Kubernetes Service (AKS) 中,具有相同設定的節點會分組到節點集區中。 每個節點集區都包含執行應用程式的虛擬機器 (VM)。 在上一個教學課程中,您已建立具有單一節點集區的 Azure Linux with OS Guard 叢集。 若要符合應用程式不同的運算、儲存或安全性需求,您可以新增使用者節點集區。

在本教學課程 (第二部分,共五部分) 中,您會了解如何:

  • 將具有 OS Guard 節點集區的 Azure Linux 新增至現有的叢集。
  • 檢查節點集區的狀態。

在稍後的教學課程中,您將瞭解如何使用 OS Guard 將節點移轉至 Azure Linux,並啟用遙測來監視叢集。

考慮事項與限制條件

開始之前,請檢閱下列 Azure Linux with OS Guard (預覽) 的考量與限制:

  • 具有 OS Guard 的 Azure Linux 需要 Kubernetes 1.32.0 版或更新版本。
  • 所有 Azure Linux with OS Guard 映像都已啟用聯邦資訊處理標準 (FIPS)可信啟動
  • 在預覽階段中,Azure CLI 和 ARM 範本是唯一支援在 AKS 上部署 Azure Linux with OS Guard 的方法。 不支援 PowerShell 和 Terraform。
  • 在預覽階段中,Azure Linux with OS Guard 不支援 Arm64 映像在 AKS 上進行部署。
  • NodeImage ,並且 None 是 AKS 上具有 OS 防護的 Azure Linux 唯一支援的 OS 升級通道Unmanaged 而且 SecurityPatch 由於不可變的 /usr 目錄,因此與具有 OS Guard 的 Azure Linux 不相容。
  • 不支援工件串流
  • 不支援 Pod 沙箱
  • 不支援機密虛擬機器 (CVM)。
  • 不支援第 1 代虛擬機器 (VM)。

先決條件

安裝 aks-preview Azure CLI 延伸模組

這很重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

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

    az extension add --name aks-preview
    
  • 使用 az extension update 命令,更新為最新版的延伸模組。

    az extension update --name aks-preview
    

註冊 Azure Linux OS Guard 預覽功能旗標

  1. 使用 AzureLinuxOSGuardPreview 命令註冊 az feature register 功能旗標。

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    狀態需要幾分鐘的時間才會顯示「已註冊」

  2. 使用 az feature show 命令驗證註冊狀態。

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. 當狀態顯示為已註冊時,請使用az provider register命令來重新整理Microsoft.ContainerService資源提供者的註冊。

    az provider register --namespace "Microsoft.ContainerService"
    

新增 Azure Linux 節點集區,並啟用 OS Guard

使用命令 az aks nodepool add 將具有 OS Guard 的 Azure Linux 節點集區新增至現有的叢集,並指定 --os-sku AzureLinuxOSGuard。 啟用 FIPS安全開機vtpm 也必須將 Azure Linux 與 OS Guard 搭配使用。 下列範例會建立名為 osgNodepool 的節點集區,以在 testAzureLinuxOSGuardResourceGroup 資源群組的 testAzureLinuxOSGuardCluster 叢集中新增三個節點。 宣告環境變數,並將隨機尾碼附加至資源群組及叢集名稱,以確保唯一性。

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export NODEPOOL_NAME="np$RANDOM_SUFFIX"

az aks nodepool add \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name $NODEPOOL_NAME \
    --node-count 3 \
    --os-sku AzureLinuxOSGuard
    --node-osdisk-type Managed 
    --enable-fips-image 
    --enable-secure-boot 
    --enable-vtpm

輸出範例:

{
  "agentPoolType": "VirtualMachineScaleSets",
  "count": 3,
  "name": "osgNodepool",
  "osType": "Linux",
  "provisioningState": "Succeeded",
  "resourceGroup": "testAzureLinuxOSGuardResourceGroupxxxxx",
  "type": "Microsoft.ContainerService/managedClusters/agentPools"
}

備註

節點集區的名稱必須以小寫字母開頭,而且只能包含英數字元。 對於 Linux 節點儲存區,長度必須介於 1 到 12 個字元之間。

檢查節點集區狀態

查看節點集區的狀態,請使用 az aks nodepool list 命令,並指定您的資源群組和叢集名稱。

az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME

輸出範例:

[
  {
    "agentPoolType": "VirtualMachineScaleSets",
    "availabilityZones": null,
    "count": 3,
    "enableAutoScaling": false,
    "enableEncryptionAtHost": false,
    "enableFips": false,
    "enableNodePublicIp": false,
    "id": "/subscriptions/REDACTED/resourcegroups/myAKSResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxxxx/agentPools/npxxxxxx",
    "maxPods": 110,
    "mode": "User",
    "name": "npxxxxxx",
    "nodeImageVersion": "AzureLinuxContainerHost-2025.10.03",
    "orchestratorVersion": "1.32.6",
    "osDiskSizeGb": 128,
    "osDiskType": "Managed",
    "osSku": "AzureLinux",
    "osType": "Linux",
    "powerState": {
      "code": "Running"
    },
    "provisioningState": "Succeeded",
    "resourceGroup": "myAKSResourceGroupxxxxx",
    "type": "Microsoft.ContainerService/managedClusters/agentPools",
    "vmSize": "Standard_DS2_v2"
  },
  {
    "agentPoolType": "VirtualMachineScaleSets",
    "availabilityZones": null,
    "count": 3,
    "enableAutoScaling": false,
    "enableEncryptionAtHost": false,
    "enableFips": false,
    "enableNodePublicIp": false,
    "id": "/subscriptions/REDACTED/resourcegroups/myAKSResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxxxx/agentPools/npxxxxxx",
    "maxPods": 110,
    "mode": "User",
    "name": "npxxxxxx",
    "nodeImageVersion": "AzureLinuxOSGuard-2025.10.03",
    "orchestratorVersion": "1.32.6",
    "osDiskSizeGb": 128,
    "osDiskType": "Managed",
    "osSku": "AzureLinuxOSGuard",
    "osType": "Linux",
    "powerState": {
      "code": "Running"
    },
    "provisioningState": "Succeeded",
    "resourceGroup": "myAKSResourceGroupxxxxx",
    "type": "Microsoft.ContainerService/managedClusters/agentPools",
    "vmSize": "Standard_DS2_v2"
  }
]

後續步驟

在本教學課程中,您已將 Azure Linux 節點集區(啟用 OS Guard)新增至現有的叢集。 在下一個教學課程中,您將瞭解如何使用 OS Guard 將現有的節點移轉至 Azure Linux。