升级已启用 Azure Arc 的 Kubernetes 代理

已启用 Azure Arc 的 Kubernetes 为其代理提供自动升级和手动升级功能,方便用户将代理升级到最新版本。 如果禁用自动升级而依赖手动升级,则版本支持策略适用于 Arc 代理和基础 Kubernetes 群集。

将群集连接到 Azure Arc 时开启或关闭自动升级

已启用 Azure Arc 的 Kubernetes 为其代理提供现成的自动升级功能。 启用自动升级后,代理将每小时轮询 Azure 以检查是否有更新的版本。 更新版本可用时,会触发对 Azure Arc 代理执行 Helm 图表升级。

将群集连接到 Azure Arc时,默认设置是启用自动升级。

以下命令可将群集连接到已启用自动升级的 Azure Arc:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

重要

确保允许与所有必需终结点的连接。 具体说来,自动升级需要连接到 dl.k8s.io

要选择禁用自动升级,请在将群集连接到 Azure Arc 时指定 --disable-auto-upgrade 参数。

以下命令可将群集连接到已禁用自动升级的 Azure Arc:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest --disable-auto-upgrade

提示

如果计划禁用自动升级,请查看已启用 Azure Arc 的 Kubernetes 的版本支持策略

将群集连接到 Azure Arc 后开启或关闭自动升级

将群集连接到 Azure Arc 后,可以通过使用 az connectedk8s update 命令并将 --auto-upgrade 设置为 true 或 false 来更改自动升级选择。

以下命令为已连接群集关闭自动升级:

az connectedk8s update --name AzureArcTest1 --resource-group AzureArcTest --auto-upgrade false

手动升级代理

如果禁用了自动升级,则可以使用 az connectedk8s upgrade 命令手动启动代理升级。 执行此操作时,必须指定要升级到的版本。

关于代理的版本控制,已启用 Azure Arc 的 Kubernetes 遵循 MAJOR.MINOR.PATCH 的标准语义版本控制方案。 版本中的每个编写表示与前一版本的一般兼容性:

  • 当存在不兼容的 API 更新或向后兼容性可能损坏时,表示重要版本变化。
  • 当功能更改与其他次要版本向后兼容时,表示次要版本变化。
  • 当进行向后兼容的 bug 修复时,表示修补程序版本变化。

虽然计划可能有所不同,但已启用 Azure Arc 的 Kubernetes 代理的新次要版本每月大约发布一次

以下命令手动将代理升级到版本 1.8.14:

az connectedk8s upgrade -g AzureArcTest1 -n AzureArcTest --agent-version 1.8.14

检查代理版本

若要列出连接的群集和报告的代理版本,请使用以下命令:

az connectedk8s list --query '[].{name:name,rg:resourceGroup,id:id,version:agentVersion}'

检查是否在群集上启用了自动升级

若要检查群集是否已启用自动升级,请运行以下 kubectl 命令。 请注意,已启用 Azure Arc 的 Kubernetes 的公共 API 中不提供自动升级配置。

kubectl -n azure-arc get cm azure-clusterconfig -o jsonpath="{.data['AZURE_ARC_AUTOUPDATE']}"

版本支持策略

为已启用 Azure Arc 的 Kubernetes 创建支持请求时,会应用以下版本支持策略:

  • 已启用 Azure Arc 的 Kubernetes 代理的支持窗口为“N-2”,其中“N”代表最新的代理次要版本。

    • 例如,如果已启用 Azure Arc 的 Kubernetes 今天发布了 0.28.a,则 0.28.a、0.28.b、0.27.c、0.27.d、0.26.e 和 0.26.f 均受支持。
  • 连接到 Azure Arc 的 Kubernetes 群集的支持窗口为“N-2”,其中“N”代表上游 Kubernetes 的最新稳定次要版本。

    • 例如,如果 Kubernetes 今天发布了 1.20.a,则 1.20.a、1.20.b、1.19.c、1.19.d、1.18.e 和 1.18.f 均受支持。

如果要创建支持请求并使用支持策略范围之外的版本(早于“N-2”受支持版本的代理和上游 Kubernetes 群集),系统会要求你将群集和代理升级到受支持的版本。

后续步骤