使用 Azure Kubernetes 舰队管理器跨多个群集自动更新 Kubernetes 和节点映像

管理大量群集的平台管理员通常会在以安全且可预测的方式暂存多个群集的更新(例如更新节点 OS 映像或 Kubernetes 版本)时遇到问题。 为了解决此难题,Azure Kubernetes 舰队管理器(舰队)允许使用更新运行来跨多个群集协调更新。

更新运行由阶段、组和策略组成,可以手动应用一次性更新,也可以使用自动更新配置文件自动应用持续的常规更新。 所有更新运行(手动或自动化)均遵循成员群集维护时段。

本文介绍如何使用自动更新配置文件在新的 Kubernetes 或节点映像版本可用时自动触发更新运行。

先决条件

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

  • 必须具有包含一个或多个成员群集的舰队资源。 如果没有,请按照快速入门创建舰队资源,并将 Azure Kubernetes 服务 (AKS) 群集加入为成员。

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

  • 设置以下环境变量:

    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
    

备注

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

创建自动更新配置文件

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

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

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

  4. 选择“阶段”或“逐个”更新顺序

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

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

    • 稳定 - 使用 N-1 Kubernetes 正式发布的次要版修补程序更新群集
    • 快速 - 使用最新 (N) Kubernetes 正式发布的次要版修补程序更新群集
    • 节点映像 - 仅更新节点映像版本
  6. 如果选择稳定快速通道,可以选择如何应用节点映像更新:

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

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

    备注

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

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

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

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

查看自动更新配置文件

  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 或节点映像上。 根据所选的自动升级通道,在新的 Kubernetes 或节点映像版本触发自动升级以创建和执行更新运行之前,可能需要一段时间。 自动升级提供 generate-update-run 命令,该命令使用当前 AKS 发布的 Kubernetes 或节点映像版本生成新的更新运行。

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