了解 AKS 组件版本控制

Azure Kubernetes 服务(AKS)管理多个遵循不同版本控制策略和修补策略的组件。 了解这些组件的版本控制如何帮助你规划升级、跟踪安全修补程序以及有效地管理群集生命周期。

本文介绍不同类别 AKS 组件的版本控制方法及其随时间推移的维护方式。

AKS 组件概述

不同 AKS 组件的关系图 - 控制平面、节点镜像和 AKS 功能、作为在节点上部署的工作负载的扩展、附加组件

AKS 由多个组件组成,每个组件都有不同的版本控制模式:

  • 由 AKS 托管的 Kubernetes 群集控制平面:包括托管的 Kubernetes API 服务器、etcd 及其他群集控制平面组件。

  • 节点映像:操作系统、容器运行时和核心 Kubernetes 节点组件。 有关在节点映像中打包哪些组件的详细信息,请参阅 AKS GitHub 存储库下的虚拟硬盘(VHD)备注文件夹

  • 工作负荷:AKS 托管功能/加载项/扩展可以在以下两类中包含组件:

    • 独立插件/功能/扩展Pod:这些AKS的功能/插件/扩展在客户托管的节点上运行独立Pod(从部署或守护进程集合中)。 示例包括 istiodazure-cnscoredns
    • 客户工作负载 Pod 中的 AKS 组件:某些 AKS 功能/加载项/扩展可能具有在右侧所示的用户 Pod 中运行的边车。 例如,Istio 将 Sidecar 代理注入到客户工作负载的 Pod 中。

    下表总结了如何为每个 AKS 组件类别管理版本控制和更新:

控制平面 节点映像 独立加载项/功能/扩展模块 客户工作负荷 Pod 内的 AKS 组件
什么是被版本化的? Kubernetes API 服务器,etcd,控制器 操作系统、容器运行时和核心 Kubernetes 节点组件 运行独立 Pod 的 AKS 功能、组件或扩展(例如:istiod) 由附加组件/扩展注入的 Sidecar 容器或辅助容器
版本控制模型 遵循上游 Kubernetes 语义版本控制(主版本.次版本.PATCH)。 AKS 提供社区和长期支持(LTS)模型。 有关详细信息,请参阅 AKS 版本支持策略文档 节点映像版本以及 随 AKS 版本发布的 VHD 说明。 加载项/功能/扩展的次要版本与 AKS 的次要版本一对一绑定 Sidecar 版本必须与附加控制平面兼容
Update 方法 客户可以控制要升级到的版本 MAJOR.MINOR.PATCH 。 手动(az aks upgrade)或自动使用 自动升级通道 客户可以升级到最新支持的节点映像版本。 手动(az aks nodepool upgrade)或自动使用 自动升级通道 - 升级控制平面次要版本时升级的次要版本( Istio 除外;请参阅 Istio 升级文档
- AKS 发布自动升级补丁版本
客户需要手动更新工作负载以兼容的 sidecar 版本,这包括重启那些具有附加容器的工作负载,具体步骤请参阅加载项/功能/扩展中的文档。

版本管理最佳做法

安全注意事项:启用自动修补更新,以确保尽快应用安全修补程序。 选择最适合群集要求和风险容忍度的自动升级通道。 手动或自动:选择最符合作要求的更新策略。 自动更新提供及时的安全修补程序并减少运营开销,而手动更新提供对时间安排和变更管理的精确控制。 使用 计划内维护时段 来控制何时应用自动升级,确保更新在群集的批准时间范围内进行。 监视和准备更改:使用 AKS 发行说明AKS 发布跟踪器随时了解即将发布的更新和新版本的可用性。 在升级生产环境之前,在非生产环境中验证升级。

  • 对于生产群集:
    • 考虑自动更新补丁,以便及时修复安全漏洞
    • 根据作需求在自动或手动次要版本升级之间进行选择
    • 首先测试暂存环境中的所有更改
  • 对于开发集群:
    • 为控制平面和节点池启用自动更新,使其保持最新功能
    • 根据开发和测试需求选择适当的通道(请参阅通道选项的 自动群集升级节点映像自动升级
    • 用作生产更新策略的测试场
  • 中断性变更:监视 AKS 发布跟踪器 并查看 Kubernetes 弃用策略 ,以随时了解 AKS 和上游 Kubernetes 中的 API 弃用和中断性变更。
  • 预升级验证:在升级生产群集之前,请在预生产群集上测试应用程序、自定义资源和第三方集成,以确保与新的 Kubernetes 版本和更新的 AKS 组件兼容。

使用 AKS 组件洞察(预览版)查看 AKS 组件版本

AKS Component Insights (Preview) 提供对 Azure Kubernetes 服务群集中运行的所有组件的确切版本的详细可见性。 此功能可帮助你了解群集的当前状态、计划升级并确定潜在的兼容性问题。

重要

AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

先决条件

  • 拥有有效订阅的 Azure 帐户。 如果没有帐户,可以 创建帐户
  • 在 Azure 环境中设置的 AKS 群集
先决条件 注释
Azure CLI 2.74.0 或更高版本。 若要查找版本,请运行 az --version。 如果需要安装或升级,请参阅 [安装 Azure CLI][install-azure-cli]。
Azure CLI aks-preview 扩展 18.0.0b19 或更高版本。 若要查找版本,请运行 az --version。 如果需要安装或升级,请参阅[管理 Azure CLI 扩展][azure-cli-extensions]。

可以使用以下命令安装或更新到最新的可用 aks-preview Azure CLI 扩展:

# Install the aks-preview extension
az extension add --name aks-preview

# Update to the latest version if already installed
az extension update --name aks-preview

使用 Azure CLI 查看组件版本

az aks get-upgrades使用命令查看组件版本:

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster

组件信息在 componentsByReleases 节中返回。 预期输出将类似于以下内容(此处仅显示 componentByReleases 的部分,以便简洁):

{
  "componentsByReleases": [
      {
        "components": [
          {
            "hasBreakingChanges": false,
            "name": "cloud-provider-node-manager-linux",
            "version": "v1.32.5"
          },
          {
            "hasBreakingChanges": false,
            "name": "cloud-provider-node-manager-windows",
            "version": "v1.32.5"
          },
          {
            "hasBreakingChanges": false,
            "name": "health-probe-proxy",
            "version": "v1.29.1"
          },
          {
            "hasBreakingChanges": false,
            "name": "kubelet-serving-csr-approver",
            "version": "v0.0.7"
          },
          {
            "hasBreakingChanges": false,
            "name": "coredns",
            "version": "v1.11.3-8"
          },
          {
            "hasBreakingChanges": false,
            "name": "metrics-server",
            "version": "v0.7.2-7"
          }
        ],
        "kubernetesVersion": "1.32"
      }
  ]
}

显示的实际组件可能因群集配置、启用的加载项和 Kubernetes 版本而异。 az aks get-upgrades使用命令查看特定群集组件的完整列表。

每个组件条目包括:

  • 名称:组件标识符
  • 版本:群集上安装的组件的确切版本
  • hasBreakingChanges:此组件版本是否引入了中断性变更

小窍门

除了使用 Azure CLI 查询组件版本信息之外,还可以使用 GET upgradeProfiles API 预览版 AKS API(2025-05-04-preview 或更高版本)以编程方式检索详细的组件版本数据。

后续步骤