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

使用 Azure Kubernetes 舰队管理器跨多个群集协调更新

管理具有大量群集的 Kubernetes 舰队的平台管理员通常无法以安全且可预测的方式在多个群集之间暂存更新。 为了解决此难题,Kubernetes 舰队管理器(舰队)允许使用更新运行、阶段、组和策略跨多个群集协调更新。

Screenshot of the Azure portal pane for a fleet resource, showing member cluster Kubernetes versions and node images in use across all node pools of member clusters.

先决条件

  • 请阅读有关此功能的概念性概述,其中提供了有关本文档中引用的更新策略、运行、阶段和组的说明。

  • 必须具有包含一个或多个成员群集的舰队资源。 如果没有,请按照快速入门创建舰队资源,并将 Azure Kubernetes 服务 (AKS) 群集加入为成员。 本演练演示了一种舰队资源,其中以五个 AKS 成员群集作为示例。

  • 设置以下环境变量:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • 如果要按照本文中的 Azure CLI 说明操作,则需要安装 Azure CLI 版本 2.53.1 或更高版本。 若要安装或升级,请参阅安装 Azure CLI

  • 你还需要 Azure CLI 扩展 fleet,可以通过运行以下命令来安装该扩展:

    az extension add --name fleet
    

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

    az extension update --name fleet
    

逐个更新所有群集

  1. 在 Azure Kubernetes 舰队管理器资源页上,转到“多群集更新”菜单,然后选择“创建”。

  2. 可以选择“逐个”或“阶段”

    Screenshot of the Azure portal pane for creating update runs that update clusters one by one in Azure Kubernetes Fleet Manager.

  3. 对于“升级范围”,可以选择同时更新 Kubernetes 版本和节点映像版本,也可以只更新节点映像版本

    Screenshot of the Azure portal pane for creating update runs. The upgrade scope section is shown.

    对于节点映像,可以使用以下选项:

    • 最新:将更新运行中的每个 AKS 群集更新为该群集在其区域内可用的最新映像。
    • 一致:更新运行中的 AKS 群集有可能跨多个区域,而这些区域的最新可用节点映像可能不同(有关更多信息,请查看发布跟踪器)。 更新运行会在所有这些区域中选取最新的共同映像,以实现一致性。

按特定顺序更新群集

更新组和阶段可以更好地控制在你更新群集时更新运行所遵循的顺序。 在更新阶段中,更新将并行应用于所有不同的更新组;在更新组中,成员群集按顺序更新。

将群集分配到更新组

可以通过以下两种方式之一将成员群集分配到特定的更新组。

  • 在将成员群集添加到舰队时分配给组。 例如:
  1. 在 Azure Kubernetes 舰队管理器资源的页面上,转到“成员群集”。

    Screenshot of the Azure portal page for Azure Kubernetes Fleet Manager member clusters.

  2. 指定成员群集应所属的更新组。

    Screenshot of the Azure portal page for adding member clusters to Azure Kubernetes Fleet Manager and assigning them to groups.

  • 第二种方法是将现有舰队成员分配到更新组。 例如:
  1. 在 Azure Kubernetes 舰队管理器资源的页面上,导航到“成员群集”。 选择所需的成员群集,然后选择“分配更新组”。

    Screenshot of the Azure portal page for assigning existing member clusters to a group.

  2. 指定组名称,然后选择“分配”。

    Screenshot of the Azure portal page for member clusters that shows the form for updating a member cluster's group.

注意

任何舰队成员只能加入一个更新组,但一个更新组内可以有多个舰队成员。 更新组本身不是一种单独的资源类型。 更新组只是表示来自舰队成员的引用的字符串。 因此,如果删除了所有引用共同更新组的舰队成员,那么该特定更新组也将不复存在。

定义更新运行和阶段

可以使用更新阶段定义更新运行,以便按顺序将更新应用程序应用到不同的更新组。 例如,第一个更新阶段可能会更新测试环境成员群集,第二个更新阶段随后将更新生产环境成员群集。 还可以指定各个更新阶段之间的等待时间。

  1. 在 Azure Kubernetes 舰队管理器资源的页面上,导航到“多群集更新”,然后选择“创建”

  2. 选择“阶段”,然后选择“节点映像(最新版本) + Kubernetes 版本”或“节点映像(最新版本)”,具体取决于所需的升级范围。

  3. 在“阶段”下,选择“创建阶段”。 现在可以指定阶段名称和每个阶段结束之后要等待的持续时间。

    Screenshot of the Azure portal page for creating a stage and defining wait time.

  4. 选择要在此阶段中包含的更新组。

    Screenshot of the Azure portal page for stage creation that shows the selection of upgrade groups.

  5. 定义全部阶段并使用“上移”和“下移”控件对其进行排序后,继续创建更新运行。

  6. 在“多群集更新”菜单中,选择更新运行,然后选择“启动”

使用更新策略创建更新运行

在上一节中,创建更新运行需要每次指定阶段、组及其顺序。 更新策略通过允许存储更新运行模板来简化这一过程。

注意

可以通过同一更新策略创建多个更新运行,并使用唯一的名称。

创建更新运行时,可以选择同时创建更新策略,从而有效地将运行保存为模板,供后续更新运行使用。

  1. 在创建更新运行时保存更新策略:

    A screenshot of the Azure portal showing update run stages being saved as an update strategy.

  2. 稍后可以在创建新的后续更新运行时引用创建的更新策略:

    A screenshot of the Azure portal showing the creation of a new update run. The 'Copy from existing strategy' button is highlighted.