教程:升级 Azure 容器 Linux (ACL) 节点

ACL 通过每周发布的节点映像提供更新,其中包括最新的安全补丁和错误修复。 作为应用程序和群集生命周期的一部分,我们建议通过为群集启用升级来让群集保持最新状态并受到保护。 可以启用自动节点映像升级,以确保群集在纵向扩展时使用最新的 ACL 映像。 还可以手动升级群集上的节点映像。

在本教程的五个部分中的第五部分中,你将学习如何:

  • 手动升级群集上的节点映像。
  • 自动升级 ACL 群集。

本教程中的命令使用教程 1 中设置的环境变量 :使用 AKS 的 ACL 创建群集

Note

任何升级操作,无论是手动执行还是自动执行,都会升级节点映像版本(如果该版本还不是最新版本)。 最新版本取决于完整的 AKS 版本,可以通过访问 AKS 发布跟踪器来确定它。

Important

NodeImageNone 是 ACL 唯一支持的 操作系统(OS)升级通道UnmanagedSecurityPatch 由于不可变的 /usr 目录而与 ACL 不兼容。 针对 OS 分区的自动 A/B 更新尚不可用。

先决条件

  • 在前面的教程中,你已创建并部署了 ACL 群集。 若要完成本教程,需要一个现有群集。 如果尚未完成此步骤并想要继续执行,请参阅 教程 1:使用 AKS 的 ACL 创建群集
  • Azure容器 Linux 需要Azure CLI 2.86.0 或更高版本。 使用az version命令查找版本。 若要升级到最新版本,请使用 az upgrade 命令。

Azure容器 Linux (ACL) 注意事项和限制

在开始之前,请了解以下有关 ACL 的注意事项和限制:

手动升级群集

使用 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 概述