使用 Azure Kubernetes 舰队管理器定义可重用的更新策略
- Artículo
-
-
管理员可以通过定义阶段、组和可选的阶段间暂停来控制对舰队管理的群集的更新序列。 这些序列可以保存为更新策略,这些策略可以独立于更新运行或自动升级进行管理,从而根据需要重复使用策略。
本文介绍如何使用组和阶段定义更新策略。
先决条件
请参阅舰队更新的概念概述,其中提供了本指南中引用的更新运行、阶段、组和策略的说明。
必须具有包含一个或多个成员群集的舰队资源。 如果没有,请按照快速入门创建舰队资源,并将 Azure Kubernetes 服务 (AKS) 群集加入为成员。
设置以下环境变量:
export GROUP=<resource-group>
export FLEET=<fleet-name>
export CLUSTERID=<aks-cluster-resource-id>
export STRATEGY=<strategy-name>
如果要按照本文中的 Azure CLI 说明操作,则需要安装 Azure CLI 版本 2.61.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI。
你还需要 Azure CLI 扩展 fleet
,可以通过运行以下命令来安装该扩展:
az extension add --name fleet
运行 az extension update
命令,更新到最新发布的扩展版本:
az extension update --name fleet
将群集分配到更新组
在更新策略中使用群集之前,必须将群集添加到可在更新阶段中使用的更新组。 在更新阶段中,更新将并行应用于每个更新组。 在更新组中,成员群集按顺序更新。
可以通过以下两种方式之一将成员群集分配给特定的更新组:
注意
一个舰队成员只能加入一个更新组,但一个更新组内可以有多个舰队成员。
更新组本身不是一种单独的资源类型。 更新组只是表示来自舰队成员的引用的字符串。 因此,如果删除了所有引用共同更新组的舰队成员,那么该特定更新组也将不复存在。
在将成员群集添加到舰队时分配给组
在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。
从服务菜单的“设置”下,选择“成员群集”>“添加”。
选择要添加的群集,然后选择“下一步:查看 + 添加”。
输入要将群集分配到的更新组的名称,然后选择“添加”。
使用 az fleet member create
命令将成员群集添加到舰队时,将成员群集分配给更新组,并将 --update-group
参数设置为更新组的名称。
az fleet member create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--member-cluster-id $CLUSTERID \
--update-group group-1a
将现有舰队成员分配给更新组
在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。
从服务菜单的“设置”下,选择“成员群集”。
选择要分配给更新组的群集,然后选择“分配更新组”
输入要将群集分配到的更新组的名称,然后选择“分配”。
使用 az fleet member update
命令将现有舰队成员分配给更新组,并将 --update-group
标志设置为更新组的名称。
az fleet member update \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--update-group group-1a
创建更新策略
更新策略由一个或多个阶段组成,其中一个阶段可以包含一个或多个更新组。
在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。
在服务菜单中的“设置”下,选择“多群集更新”>“策略”,然后选择“创建”。
输入策略的名称。
首次查看页面时,会显示一个更新策略说明图,有助于直观显示策略的功能。
选择“创建阶段”并输入以下内容:
- 阶段名称 - 命名阶段 - 该名称必须在舰队中的所有阶段名称中唯一。
- (可选)阶段后暂停 - 如果要在移动到下一阶段之前定义暂停,请选择此选项。
- (可选)暂停持续时间 - 选择预定义持续时间,或以秒为单位输入自定义值。
将一个或多个“更新组”分配到阶段,然后选择“创建”。
对于此方案,我们将创建阶段和组,以匹配用于 Azure 门户过程的详细信息。
创建 JSON 文件以定义更新运行的阶段和组。 下面是阶段文件 (example-stages.json) 的输入示例,表示通过 Azure 门户创建的策略:
{
"stages": [
{
"name": "stage-1",
"groups": [
{
"name": "group-1"
},
{
"name": "group-2"
}
],
"afterStageWaitInSeconds": 300
},
{
"name": "stage-2",
"groups": [
{
"name": "group-3"
}
]
}
]
}
使用 az fleet updatestrategy create
命令新建更新策略,并将 --stages
标志设置为 JSON 文件的名称。
az fleet updatestrategy create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name $STRATEGY \
--stages example-stages.json
后续步骤
你可以在手动更新运行或自动升级配置文件中使用更新策略。 请参阅: