在 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)。
先決條件
- 在上一個教學課程中,您已建立並部署具有 OS Guard 叢集的 Azure Linux。 如果您尚未完成這些步驟,而且想要遵循,請參閱 教學課程 1:使用 Azure Linux 和適用於 AKS 的 OS Guard 建立叢集。
- 您需要最新版的 Azure CLI。 使用指令
az version來尋找版本。 若要升級至最新版本,請使用命令az upgrade。
安裝 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 預覽功能旗標
使用
AzureLinuxOSGuardPreview命令註冊az feature register功能旗標。az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"狀態需要幾分鐘的時間才會顯示「已註冊」。
使用
az feature show命令驗證註冊狀態。az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"當狀態顯示為已註冊時,請使用
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。