Important
从 2026 年 12 月 10 日开始,Azure Kubernetes 服务 (AKS)不再支持使用适用于 AKS 的 OS Guard Azure Linux(预览版)。 此时,AKS 不再使用 OS Guard 节点映像生成新的 Azure Linux 或提供安全修补程序,并且不能再使用 OS Guard Azure Linux 创建新节点池。 2027 年 3 月 10 日,AKS 删除所有具有 OS Guard 节点映像的现有 Azure Linux,这会导致缩放和修正(重置映像和重新部署)操作失败。 为了避免中断,请迁移到Azure容器 Linux (ACL)。 有关此停用的详细信息,请参阅停用GitHub问题和Azure更新停用公告。 若要随时了解公告和更新,请按照 AKS 发行说明进行操作。
Note
带有 OS Guard(预览版)的 Azure Linux 正被 Azure Container Linux(ACL)取代。
Azure容器 Linux 是用于Azure Kubernetes 服务 (AKS)的长期、不可变、容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。
有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述。
在本教程中,第 1 部分(共 5 部分)将介绍如何:
- 安装 Kubernetes CLI
kubectl。 - 安装
aks-previewAzure CLI 扩展。 - 注册
AzureLinuxOSGuardPreview功能标志。 - 创建 Azure 资源组。
- 使用 OS Guard 群集创建和部署 Azure Linux。
- 配置
kubectl以连接到具有 OS Guard 集群的 Azure Linux。
在后面的教程中,了解如何将具有 OS Guard 节点池的 Azure Linux 添加到现有群集,以及使用 OS Guard 将现有节点迁移到 Azure Linux。
先决条件
- 需要最新版本的 Azure CLI。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。 -
aks-preview安装Azure CLI 扩展。 -
注册
AzureLinuxOSGuardPreview功能标志。
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)。
安装 aks-preview Azure CLI 扩展
Important
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
使用 aks-preview 命令安装 az extension add 扩展。
az extension add --name aks-preview
使用 az extension update 命令更新到扩展的最新版本。
az extension update --name aks-preview
注册 AzureLinuxOSGuardPreview 功能标志
使用
AzureLinuxOSGuardPreview命令注册az feature register功能标志。az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"几分钟后,状态将显示为“已注册”。
使用
az feature show命令验证注册状态。az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"当状态显示已注册时,请使用
Microsoft.ContainerService命令刷新资源提供程序的az provider register注册。az provider register --namespace "Microsoft.ContainerService"
设置环境变量。
设置以下环境变量,为每个部署创建唯一的资源名称:
export RESOURCE_GROUP="<your-resource-group-name>"
export REGION="<your-region>"
export CLUSTER_NAME="<your-cluster-name>"
创建资源组
在Azure中创建资源组时,需要指定位置。 此位置是资源组元数据的存储位置,如果在创建资源时未指定其他区域,则资源在Azure中运行的位置。
使用 az group create 命令创建资源组。
az group create --name $RESOURCE_GROUP --location $REGION
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx",
"location": "chinanorth3",
"managedBy": null,
"name": "testAzureLinuxOSGuardResourceGroupxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
使用 OS Guard 创建 Azure Linux(预览版)群集
使用 az aks create 带有参数的 --os-sku AzureLinuxOSGuard 命令创建 AKS 群集,以使用 OS Guard 群集预配 Azure Linux。 需要启用 FIPS、secure boot 和 vtpm才能将 Azure Linux 与 OS Guard 配合使用。
az aks create --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/testAzureLinuxOSGuardClusterxxxxx",
"location": "chinanorth3",
"name": "testAzureLinuxOSGuardClusterxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"type": "Microsoft.ContainerService/managedClusters"
}
片刻之后,该命令将会完成,并返回有关群集的 JSON 格式信息。
使用 kubectl 连接到群集
使用
kubectl命令将az aks get-credentials配置为连接到你的 Kubernetes 群集。az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME使用
kubectl get nodes命令验证与群集的连接,以返回群集节点的列表。kubectl get nodes示例输出:
NAME STATUS ROLES AGE VERSION aks-nodepool1-00000000-0 Ready agent 10m v1.20.7 aks-nodepool1-00000000-1 Ready agent 10m v1.20.7
后续步骤
在本教程中,你已创建并部署了具有 OS Guard 群集的 Azure Linux。 在下一教程中,了解如何将包含 OS Guard 节点池的 Azure Linux 添加到现有群集。