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

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

队列资源的 Azure 门户窗格的屏幕截图,其中显示了成员集群的所有节点池中使用的成员集群 Kubernetes 版本和节点映像。

先决条件

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

  • 必须具有包含一个或多个成员群集的舰队资源。 如果没有,请按照快速入门创建舰队资源,并将 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. 可以选择“逐个”或“阶段”

    用于创建更新运行的 Azure 门户窗格的屏幕截图,这些更新运行可在 Azure Kubernetes 舰队管理器中逐个更新群集。

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

    用于创建更新运行的 Azure 门户窗格的屏幕截图。将显示升级范围部分。

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

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

按特定顺序更新群集

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

将群集分配到更新组

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

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

    Azure Kubernetes 舰队管理器成员群集的 Azure 门户页的屏幕截图。

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

    用于将成员群集添加到 Azure Kubernetes 舰队管理器并将其分配给组的 Azure 门户页的屏幕截图。

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

    用于将现有成员群集分配到组的 Azure 门户页的屏幕截图。

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

    成员群集的 Azure 门户页的屏幕截图,其中显示了一个表单,用于更新成员群集的组。

注意

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

定义更新运行和阶段

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

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

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

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

    用于创建阶段并定义等待时间的 Azure 门户页的屏幕截图。

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

    用于创建阶段的 Azure 门户页的屏幕截图,其中显示了如何选择更新组。

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

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

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

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

注意

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

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

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

    Azure 门户的屏幕截图,其中显示了作为更新策略保存的更新运行阶段。

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

    Azure 门户的屏幕截图,其中显示了新更新运行的创建。突出显示了“从现有策略复制”按钮。