Note
带有 OS Guard(预览版)的 Azure Linux 正被 Azure Container Linux(ACL)取代。
Azure容器 Linux 是用于Azure Kubernetes 服务 (AKS)的长期、不可变、容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。
有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述。
在 AKS 中,具有相同配置的节点将组合成节点池。 每个节点池都包含运行应用程序的虚拟机(VM)。 在上一教程中,你创建了一个包含具有单个节点池的 OS Guard 群集的 Azure Linux。 若要满足应用程序的不同计算、存储或安全要求,可以添加用户节点池。
在本教程中,第 2/5 部分将介绍你如何:
- 将具有 OS Guard 节点池的 Azure Linux 添加到现有群集。
- 检查节点池的状态。
本教程中的命令使用 Tutorial 1 中设置的环境变量:使用适用于 AKS 的 OS Guard Azure Linux 创建群集。
在后面的教程中,了解如何使用 OS Guard 将节点迁移到 Azure Linux,并启用遥测来监视群集。
先决条件
- 在上一教程中,你已创建并部署了具有 OS Guard 群集的 Azure Linux。 如果尚未完成这些步骤并想要继续执行,请参阅 教程 1:使用适用于 AKS 的 OS Guard 创建具有 Azure Linux 的群集。
- 需要最新版本的 Azure CLI。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。
Azure Linux 使用 OS Guard 时的注意事项和限制
在开始之前,请查看以下 Azure Linux 与 OS Guard 的注意事项和限制(预览版):
- 使用 OS Guard 的 Azure Linux 需要 Kubernetes 版本 1.32.0 或更高版本。
- 所有具有 OS Guard 映像的 Azure Linux 都启用了 联邦信息进程标准(FIPS) 和 受信任的启动 。
- 在 AKS 上的 Azure Linux,只有 Azure CLI 和 ARM 模板这两种部署方法受支持,并且 OS Guard 目前处于预览状态。 不支持 PowerShell 和 Terraform。
-
NodeImage和None是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。Unmanaged和SecurityPatch与带有 OS Guard 的 Azure Linux 不兼容,因为 /usr 目录是不可变的。 - 不支持工件流式传输。
- 不支持 Pod Sandboxing。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代虚拟机(VM)。
将 Azure Linux 添加到具有 OS Guard 的节点池中
使用 az aks nodepool add 命令将具有 OS Guard 节点池的 Azure Linux 添加到现有群集中并指定 --os-sku AzureLinuxOSGuard。 还需要启用 FIPS、secure boot 和 vtpm 才能将 Azure Linux 与 OS Guard 配合使用。 以下示例创建名为 osgNodePool 的节点池,该池将三个节点添加到群集:
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name osgNodePool \
--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"
}
Note
节点池的名称必须以小写字母开头,且只能包含字母数字字符。 对于 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"
}
]
后续步骤
在本教程中,你已将包含 OS Guard 节点池的 Azure Linux 添加到现有群集。 下一教程介绍如何使用 OS Guard 将现有节点迁移到 Azure Linux。