使用 Azure Kubernetes 舰队管理器跨多个群集自动更新 Kubernetes 和节点映像(预览版)
管理大量群集的平台管理员通常会在以安全且可预测的方式暂存多个群集的更新(例如更新节点 OS 映像或 Kubernetes 版本)时遇到问题。 为了解决此难题,Azure Kubernetes 舰队管理器(舰队)允许使用更新运行来跨多个群集协调更新。
更新运行由阶段、组和策略组成,可以手动应用一次性更新,也可以使用自动更新配置文件自动应用持续的常规更新。 所有更新运行(手动或自动化)均遵循成员群集维护时段。
本文介绍如何使用自动更新配置文件在新的 Kubernetes 或节点映像版本可用时自动触发更新运行。
重要
Azure Kubernetes 舰队管理器预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 客户支持部门会尽力为 Azure 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.61.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI。
此外,还需要
fleet
Azure CLI 扩展版本 1.3.0 或更高版本,可以通过运行以下命令来实现安装:az extension add --name fleet
运行以下命令以更新到已发布的最新扩展版本:
az extension update --name fleet
注意
自动更新触发的更新运行遵循在 AKS 群集级别设置的计划内维护时段。 有关详细信息,请参阅跨多个成员群集的计划内维护,其中说明了更新运行如何处理配置了计划内维护时段的成员群集。
创建自动更新配置文件
在 Azure 门户中,导航到 Azure Kubernetes 舰队管理器资源。
在服务菜单中的“设置”下,选择“多群集更新”>“自动升级配置文件”。
选择“创建”,输入配置文件的名称,然后选择是否启用该配置文件。 发布新版本时不会触发已禁用的自动升级配置文件。
选择“阶段”或“逐个”更新顺序。
为“通道”选择以下选项之一:
- 稳定 - 使用 N-1 Kubernetes 正式发布的次要版修补程序更新群集。
- 快速 - 使用最新 (N) Kubernetes 正式发布的次要版修补程序更新群集。
- 节点映像 - 仅更新节点映像版本。
为“节点映像”选择以下选项之一:
- 最新映像:将自动升级配置文件中的每个 AKS 群集更新为该群集在其 Azure 区域内可用的最新映像。
- 一致映像:自动升级配置文件中的 AKS 群集有可能跨多个 Azure 区域,而这些区域的最新可用节点映像可能不同(有关更多信息,请查看发布跟踪器)。 选择此选项可确保自动升级配置文件在所有 Azure 区域中选取最新的通用映像,以实现一致性。
如果你选择了使用“阶段”的更新顺序,请选择或创建一个策略。
选择“创建”以创建自动升级配置文件。
查看自动更新配置文件
删除自动更新配置文件
注意
禁用正在执行的更新运行的自动升级配置文件不会影响将要继续执行的现有更新运行。
验证自动升级
仅当有新的 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}"
更新运行完成后,可以重新运行这些命令并查看已部署的更新版本。