ACL 通过每周发布的节点映像提供更新,其中包括最新的安全补丁和错误修复。 作为应用程序和群集生命周期的一部分,我们建议通过为群集启用升级来让群集保持最新状态并受到保护。 可以启用自动节点映像升级,以确保群集在纵向扩展时使用最新的 ACL 映像。 还可以手动升级群集上的节点映像。
在本教程的五个部分中的第五部分中,你将学习如何:
- 手动升级群集上的节点映像。
- 自动升级 ACL 群集。
本教程中的命令使用教程 1 中设置的环境变量 :使用 AKS 的 ACL 创建群集。
Note
任何升级操作,无论是手动执行还是自动执行,都会升级节点映像版本(如果该版本还不是最新版本)。 最新版本取决于完整的 AKS 版本,可以通过访问 AKS 发布跟踪器来确定它。
Important
NodeImage 和 None 是 ACL 唯一支持的 操作系统(OS)升级通道。
Unmanaged 和 SecurityPatch 由于不可变的 /usr 目录而与 ACL 不兼容。 针对 OS 分区的自动 A/B 更新尚不可用。
先决条件
- 在前面的教程中,你已创建并部署了 ACL 群集。 若要完成本教程,需要一个现有群集。 如果尚未完成此步骤并想要继续执行,请参阅 教程 1:使用 AKS 的 ACL 创建群集。
- Azure容器 Linux 需要Azure CLI 2.86.0 或更高版本。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。
Azure容器 Linux (ACL) 注意事项和限制
在开始之前,请了解以下有关 ACL 的注意事项和限制:
- ACL 自 AKS v1.34 起正式发布。
- ACL 需要有安全启动和 vTPM 的受信任启动。 非受信任的启动变体不可用。
- Arm64 上的 ACL 要求使用基于 Cobalt 的 (v6) SKU,以支持受信任启动兼容性。
-
NodeImage并且None是唯一受支持的 操作系统(OS)升级通道。Unmanaged和SecurityPatch由于不可变的/usr目录而与 ACL 不兼容。 - 不支持工件流式传输。
- 不支持 Pod Sandboxing。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代 VM。
- 不支持启用 FIPS 的节点。
手动升级群集
使用 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/myACLResourceGroup",
"location": "westus",
"name": "myACLCluster",
"properties": {
"autoUpgradeChannel": "stable",
"provisioningState": "Succeeded"
}
}
有关升级通道的详细信息,请参阅使用群集自动升级。
自动升级节点 OS 映像
AKS 提供了多个专用于及时节点级 OS 安全更新的自动升级通道。 此通道不同于群集级别的 Kubernetes 版本升级并将取代后者。
使用带参数的 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/myACLResourceGroup",
"location": "westus",
"name": "myACLCluster",
"properties": {
"nodeOsUpgradeChannel": "NodeImage",
"provisioningState": "Succeeded"
}
}
有关节点升级通道的详细信息,请参阅 使用节点 OS 自动升级。
ACL 版本管理
ACL 每周发布 AKS 节点映像。 版本控制遵循基于 AKS 日期的格式(例如: 202506.13.0) 。 可以在发行说明中检查可用的节点映像,并使用 nodeImageVersion 命令查看正在运行的群集的 az aks nodepool list。
az aks nodepool list \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--query '[].{name: name, nodeImageVersion: nodeImageVersion}'
示例输出:
[
{
"name": "nodepool1",
"nodeImageVersion": "AKSAzureContainerLinux-202606.01.0"
}
]
清理资源
由于本教程是本系列的最后一部分,因此可能需要删除 ACL 群集。 Kubernetes 节点在Azure虚拟机(VM)上运行,即使不使用群集,也会继续产生费用。
使用 az group delete 命令删除Azure资源组和所有相关资源。
az group delete --name $RESOURCE_GROUP --yes --no-wait
后续步骤
在本教程中,你升级了 ACL 群集。
有关 Azure 容器 Linux 的详细信息,请参阅 ACL 概述。