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) 概述。
具有 OS Guard 的 Azure Linux 通过更新的节点映像和自动包更新提供更新。 作为应用程序和群集生命周期的一部分,我们建议通过为群集启用升级来让群集保持最新状态并受到保护。 可以启用自动节点映像升级,以确保群集在纵向扩展时将最新的 Azure Linux 与 OS Guard 映像配合使用。 还可以手动升级群集上的节点映像。
在本教程的五个部分中的第五部分中,你将学习如何:
- 手动升级群集上的节点映像。
- 使用 OS Guard 群集自动升级 Azure Linux。
- 使用 OS Guard 群集在 Azure Linux 中部署 Kured。
Note
任何升级操作,无论是手动执行还是自动执行,都会升级节点映像版本(如果该版本还不是最新版本)。 最新版本取决于完整的 AKS 版本,可以通过访问 AKS 发布跟踪器来确定它。
先决条件
- 在前面的教程中,你已创建并部署了具有 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)。
手动升级群集
使用 az aks nodepool upgrade 命令手动升级群集上的节点映像。
az aks nodepool upgrade --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name <node-pool-name>
自动升级群集
自动升级在功能上与手动升级相同。 所选通道将决定升级的时间。 更改自动升级后,更改需要 24 小时才能生效。
使用带 az aks update 参数的 --auto-upgrade-channel 命令在现有群集上设置自动升级通道。 以下示例将现有群集的自动升级通道设置为 stable :
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --auto-upgrade-channel stable
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxResourceGroup",
"location": "chinanorth3",
"name": "testAzureLinuxCluster",
"properties": {
"autoUpgradeChannel": "stable",
"provisioningState": "Succeeded"
}
}
有关升级通道的详细信息,请参阅使用群集自动升级。
自动升级节点 OS 映像
AKS 提供了多个专用于及时节点级 OS 安全更新的自动升级通道。 此通道不同于群集级别的 Kubernetes 版本升级并将取代后者。
Important
NodeImage 和 None是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。
Unmanaged 和 SecurityPatch 与带有 OS Guard 的 Azure Linux 不兼容,因为 /usr 目录是不可变的。
使用带参数的 az aks update 命令 --node-os-upgrade-channel 在现有群集上设置节点 OS 升级通道。 以下示例将现有群集的节点操作系统升级通道设置为 NodeImage:
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-os-upgrade-channel NodeImage
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxResourceGroup",
"location": "chinanorth3",
"name": "testAzureLinuxCluster",
"properties": {
"nodeOsUpgradeChannel": "NodeImage",
"provisioningState": "Succeeded"
}
}
有关节点升级通道的详细信息,请参阅 使用节点 OS 自动升级。
清理资源
由于本教程是本系列的最后一部分,因此可能需要使用 OS Guard 群集删除 Azure Linux。 Kubernetes 节点在Azure虚拟机(VM)上运行,即使不使用群集,也会继续产生费用。
使用 az group delete 命令删除Azure资源组和所有相关资源。
az group delete --name $RESOURCE_GROUP --yes --no-wait
后续步骤
在本教程中,你升级了 Azure Linux 容器主机群集。
有关具有 OS Guard 的 Azure Linux 的详细信息,请参阅 带有 OS Guard 的 Azure Linux 概述。