你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Kubernetes 群集管理器在多个群集中自动升级 Kubernetes 和节点镜像

适用于: ✔️车队经理 ✔️中心群集的车队经理

确保群集及时且安全地保持更新是平台管理员的一个关键问题。 管理员采用 Azure Kubernetes 机群管理器 更新运行策略后,可以使用自动升级配置文件在发布新的 Kubernetes 或节点映像版本时自动执行更新运行。

本文介绍如何使用自动升级配置文件在 AKS 提供新的 Kubernetes 或节点映像版本时自动创建和执行更新运行。

注意

自动更新触发的更新运行遵循在 AKS 群集级别设置的计划内维护时段。 有关详细信息,请参阅 跨多个成员群集的计划内维护,其中说明了如何在配置了计划内维护时段的情况下运行更新处理成员群集。

在您开始之前

  • 阅读自动更新配置文件的概念概述,其中对本指南中引用的配置进行了说明。

  • 必须具有具有一个或多个成员群集的机群管理器。 否则,请按照 快速入门 创建 Fleet Manager,并将 Azure Kubernetes 服务 (AKS) 群集添加为成员。

  • 若要使用更新策略,请按照 更新运行指南文章 中的说明进行配置。 使用 Azure CLI 时,需要更新策略资源标识符,与自动更新配置文件结合使用。

创建自动更新配置文件

首先完成这些步骤以确保正确配置环境。

  • 设置以下环境变量:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • 需要安装 Azure CLI 2.70.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI

  • 还需要 fleet Azure CLI 扩展版本 1.5.0 或更高版本,可以通过运行以下命令进行安装:

    az extension add --name fleet
    

    运行以下命令以更新到已发布的最新扩展版本:

    az extension update --name fleet
    

使用 az fleet autoupgradeprofile create 命令创建配置文件,如下所示。

可以在使用 --disabled 命令时传递 create 参数来创建禁用自动更新的配置文件。 若要启用自动更新配置文件,必须重新发出整个 create 命令并省略 --disabled 参数。

注意

禁用自动升级配置文件不会影响任何正在进行的更新运行,但是在重新启用该配置文件之前不会生成新的更新运行。

稳定渠道 Kubernetes 更新

更新到次要版本 N-1 上最新支持的 Kubernetes 补丁版本,其中 N 是最新支持的次要版本。

依次逐个更新成员群集。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

使用现有更新策略更新成员群集。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

使用现有更新策略更新成员群集,确保在每个 Azure 区域中使用相同的节点映像版本。 所有成员群集都运行相同的节点映像版本。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Consistent

使用现有更新策略更新成员群集,并使用每个 Azure 区域的最新可用节点映像版本。 成员群集可以运行多个节点映像版本。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Latest

目标 Kubernetes 次要版本更新(预览版)

使用 --target-kubernetes-version 参数更新至定义的目标 Kubernetes 次要版本,并以 {主版本}.{次要版本} 的格式提供版本(例如,1.33)。 当修补程序可用时,机群自动升级会自动将成员群集升级到指定目标版本的最新修补程序版本。

重要

Azure Kubernetes 舰队管理器预览功能可以通过自助服务方式选择性启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 客户支持部门会尽力为 Azure Kubernetes 舰队管理器预览功能提供部分支持。 因此,这些功能并不适合用于生产。

注意

  • 使用 TargetKubernetesVersion 通道时,必须指定 --target-kubernetes-version 参数。 对于其他通道(快速、稳定、NodeImage),不支持此参数。

  • --long-term-support (LTS) 标志仅在使用TargetKubernetesVersion通道时才可用。 对于其他通道,此标志必须设置为 False。

  • 不能将目标 Kubernetes 版本设置为 AKS 尚未发布的将来的 Kubernetes 版本。

  • 通过传递 --long-term-support 标志,只能为自动升级配置文件选择 LTS Kubernetes 版本 (N-2)。 为了使舰队自动升级在这种情况下继续工作,还必须确保生成的更新运行中的群集均已启用 LTS。 遇到第一个非 LTS 群集时,非 LTS 群集会导致更新运行失败。

将成员群集自动更新到 Kubernetes 版本 1.33 的最新修补程序。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

自动更新启用 LTS 的成员群集到 Kubernetes 小版本 1.29 的最新补丁,该补丁当前只能通过 AKS LTS 获得。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

节点映像更新

使用新修补的计算机映像更新节点,其中包含安全修补程序和 bug 修复。

更新成员群集的节点映像,依次逐个处理群集。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

更新节点映像以处理成员群集,并使用现有的更新策略来处理群集。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

查看自动更新配置文件

可以使用 az fleet autoupgradeprofile listaz fleet autoupgradeprofile show 命令查看自动更新配置文件。

列出舰队的所有自动更新配置文件。

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET

显示舰队的特定自动更新配置文件。

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

删除自动更新配置文件

使用 az fleet autoupgradeprofile delete 命令删除现有自动更新配置文件。 系统会要求你确认删除。 如果希望立即删除配置文件,请加入 --yes

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

注意

删除自动升级配置文件不会影响任何正在进行的更新运行。

创建自动更新配置文件

  1. 在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。

  2. 在服务菜单中的“设置”下,选择“多群集更新”“自动升级配置文件”>

  3. 选择“创建”,输入配置文件的名称,然后选择是否启用该配置文件。 发布新版本时不会触发已禁用的自动升级配置文件。

  4. 选择更新顺序:可以选择阶段逐个

    Azure Kubernetes Fleet Manager Azure 门户面板的屏幕截图,用于创建自动升级配置文件,通过策略更新群集。

  5. 为“通道”选择以下选项之一

    • 稳定 - 使用 N-1 Kubernetes 正式发布的次要版修补程序更新群集
    • 快速 - 使用最新 (N) Kubernetes 正式发布的次要版修补程序更新群集
    • 节点映像 - 仅更新节点映像版本
    • 目标 Kubernetes 次要版本 (预览版) - 当修补程序可用时,将群集更新为指定目标 Kubernetes 次要版本的最新修补程序版本。

    Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,其中显示了如何创建自动升级配置文件来定义更新触发方式。

  6. 如果选择“目标 Kubernetes 次要版本(预览版)”通道,可以选择用作触发器的 Kubernetes 次要版本:

    • 允许 LTS 次要版本:允许选择仅适用于 AKS 长期支持 (LTS) 群集的 Kubernetes 次要版本。
    • 目标 Kubernetes 次要版本:选择 Kubernetes 次要版本的触发机制。 会首先更新使用较低次要版本的群集,之后仅应用补丁更新。

    用于创建自动升级配置文件的 Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,其中定义了要用作触发器的 Kubernetes 次要版本。

    注意

    “允许 LTS 次要版本”仅支持在已启用 LTS 的所有群集中执行更新运行。 遇到非 LTS 群集会导致更新运行失败。

  7. 如果选择稳定快速目标 Kubernetes 次要版本(预览版)通道,您可以选择如何应用节点镜像更新:

    • 最新映像:将自动升级配置文件中的每个 AKS 群集更新为该群集在其 Azure 区域内可用的最新映像
    • 一致的映像:自动升级可以在多个 Azure 区域中使用 AKS 群集,其中最新的可用节点映像可能不同(有关详细信息,请查看 AKS 发布跟踪器 )。 选择此选项可确保自动升级配置文件在所有 Azure 区域中选取最新的通用映像,以实现一致性

    注意

    节点映像通道会始终使用一致的映像

  8. 如果你选择了使用阶段的更新顺序,请选择或创建一个策略

    Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,其中显示了如何创建自动升级配置文件来选择要使用的更新策略。

  9. 选择“创建”以创建自动升级配置文件

查看自动更新配置文件

  1. 在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。

  2. 在服务菜单中的“设置”下,选择“多群集更新”“自动升级配置文件”>

    Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,可在其中查看可用的自动升级配置文件。

  3. 要查看其配置,请选择所需的自动升级配置文件。

    Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,其中显示了单个自动升级配置文件的配置。

删除自动更新配置文件

  1. 在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。

  2. 在服务菜单中的“设置”下,选择“多群集更新”“自动升级配置文件”>

    Azure Kubernetes 舰队管理器 Azure 门户窗格的屏幕截图,可在其中查看可用的自动升级配置文件。

  3. 在列表中选择所需的配置文件,然后选择“删除”以删除该配置文件

注意

删除自动升级配置文件不会影响任何正在进行的更新运行。

验证自动升级

仅当有新的 Kubernetes 或节点映像可用时才会执行自动更新。 触发自动升级时,会创建一个带链接的更新运行,因此你可以使用 manage update run 来查看自动升级的结果。

还可以如下所示检查现有版本,并以此作为基准。

# Get Kubernetes version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

更新运行完成后,可以重新运行这些命令并查看已部署的更新版本。

从自动升级配置文件生成更新运行

创建自动升级配置文件时,在新的 Kubernetes 或节点映像版本触发自动升级来创建和执行更新运行之前,可能需要一段时间。

通过自动升级,可以随时使用 az fleet autoupgradeprofile generate-update-run 命令生成新的更新运行。 生成的更新运行基于当前 AKS 发布的 Kubernetes 或节点映像版本。

有关从自动升级配置文件创建按需更新运行的详细信息,请参阅从自动升级配置文件生成更新运行

后续步骤