升级 AKS 中的操作系统 (OS) 版本

本文介绍可用于 Azure Kubernetes 服务(AKS)节点的 OS 版本,以及测试和升级 OS 版本的最佳做法。

重要

2026 年 12 月 10 日开始,Azure Kubernetes 服务 (AKS)不再支持使用适用于 AKS 的 OS Guard Azure Linux(预览版)。 此时,AKS 不再使用 OS Guard 节点映像生成新的 Azure Linux 或提供安全修补程序,并且不能再使用 OS Guard Azure Linux 创建新节点池。 2027 年 3 月 10 日,AKS 删除所有具有 OS Guard 节点映像的现有 Azure Linux,这会导致缩放和修正(重置映像和重新部署)操作失败。 为了避免中断,请迁移到Azure容器 Linux (ACL)。 有关此停用的详细信息,请参阅停用GitHub问题和Azure更新停用公告。 若要随时了解公告和更新,请按照 AKS 发行说明进行操作

重要

2027 年 3 月 17 日开始,Azure Kubernetes 服务(AKS)不再支持或提供 Ubuntu 20.04 安全更新。 将删除任何现有节点映像,并且无法缩放运行 Ubuntu 20.04 的任何节点池。 通过将 节点池升级到 Kubernetes 版本 1.35+,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 停用 GitHub 问题和Azure 更新停用公告。 若要随时了解公告和更新,请关注AKS 发行说明

重要

June 30,2027 开始,Azure Kubernetes 服务 (AKS)不再支持或提供 Ubuntu 22.04 安全更新。 若要避免中断,请在该日期前迁移到 Ubuntu 24.04 或更高版本。 从现在到 2027 年 6 月 30 日,可以在 AKS 上使用 Ubuntu 22.04,而不会中断。 如果不在 2027 年 6 月 30 日前迁移,将无法创建新的节点池,AKS 不会生成新节点映像,并且不再收到现有节点池的安全修补程序。 如果要使用 Kubernetes 版本 1.33 或更高版本启用长期支持(LTS),请先将节点池更新为 Ubuntu 24.04。 2028 年 4 月 30 日,AKS 将删除 Ubuntu 22.04 节点映像和现有代码,从而导致缩放和修正操作失败。 为了避免服务中断(如安全漏洞、节点映像升级失败和缩放失败),请在 2027 年 6 月 30 日前 迁移到 Ubuntu 24.04 或更高版本。 迁移选项包括:

  • 默认操作系统 SKU (OSSku):如果使用 Ubuntu,在将 Kubernetes 版本升级到 1.35 或更高版本时,会自动迁移到 Ubuntu 24.04。
  • 有版本的 OSSku:如果使用 Ubuntu2204,请将 OSSku 更新为适用于 Kubernetes 1.35 或更高版本的 Ubuntu,或适用于 Kubernetes 1.32 或更高版本的 Ubuntu2404

有关此停用的详细信息,请参阅 停用 GitHub 问题Azure 更新文章。 若要随时了解公告和更新,请关注AKS 发行说明

重要

2025 年 11 月 30 日开始,Azure Kubernetes 服务(AKS)不再支持或提供 Azure Linux 2.0 安全更新。 Azure Linux 2.0 节点映像在 202512.06.0 版中冻结。 从 2026 年 3 月 31 日开始,将删除节点映像,并且无法缩放节点池。 通过将 节点池升级到 受支持的 Kubernetes 版本或迁移到 osSku AzureLinux3,迁移到受支持的 Azure Linux 版本。 有关详细信息,请参阅 停用 GitHub 问题和Azure 更新停用公告。 若要随时了解公告和更新,请关注AKS 发行说明

支持的操作系统版本

每个 节点映像 对应于可以使用 OS SKU 指定的 OS 版本。 创建群集和节点池时,可以指定以下参数:

  • --os-type:OS 类型,包括 Linux 或 Windows。 无法在群集创建或更新期间指定 Windows OS 类型。
  • --os-sku:用于指定 OS 版本或 OS 变体。 无法在群集创建或更新期间指定 Windows OS SKU。 有关支持的 OS SKU 选项的详细信息,请参阅 Azure AKS CLIAPI
  • --kubernetes-version:用于创建节点池或群集的 Kubernetes 版本。

最佳实践指南

默认 OS 版本是最新验证的版本。

  • 对于 Ubuntu,我们建议在指定 --os-type Linux--os-sku Ubuntu 时创建群集和节点池。 这将根据 Kubernetes 版本自动更新到最新的默认 Ubuntu 版本。
  • 对于 Azure Linux,我们建议在指定 --os-type Linux--os-sku AzureLinux 的同时创建群集和节点池。 这会根据 Kubernetes 版本自动更新到最新的默认 Azure Linux 版本。
  • 对于 Azure 容器 Linux(ACL),建议在指定 --os-type Linux--os-sku AzureContainerLinux 时创建群集和节点池。 这会根据 Kubernetes 版本自动更新到最新的默认 ACL 版本。
  • 对于 Windows,请在创建节点池时指定 --os-type Windows--os-sku Windows2025--enable-fips-image(Windows Server 2025 需要启用了 FIPS 的映像)。 当新 OS 版本发布时,您需要手动将节点池更新到该版本。
OS 类型 操作系统 SKU 支持的 Kubernetes 版本 默认版本化
Linux Ubuntu 所有 Kubernetes 版本都支持此 OS SKU。 此 OS SKU 的 OS 版本会根据 Kubernetes 版本进行更改。 Ubuntu 22.04 默认为 Kubernetes 版本 1.25 到 1.34。 Ubuntu 24.04 是 Kubernetes 版本 1.35+ 的默认操作系统。
Linux Ubuntu2604 Kubernetes 1.36 及更高版本中的预览版支持此 OS SKU。 我们推荐使用此指定版本的 OS SKU,以便在不升级 Kubernetes 版本的情况下迁移到新的 OS 版本。 需要 Ubuntu2604Preview 功能标志。
Linux Ubuntu2404 此 OS SKU 仅在 Kubernetes 1.32 到 1.38 中受支持。 我们推荐使用此指定版本的 OS SKU,以便在不升级 Kubernetes 版本的情况下迁移到新的 OS 版本。 在 Kubernetes 版本 1.35+ 中使用 --os-sku Ubuntu 时,默认为 Ubuntu 24.04。
Linux Ubuntu2204 Kubernetes 版本 1.25 到 1.36 支持此 OS SKU。 我们建议,如果需要回滚到 Ubuntu 22.04,使用此版本化的 OS SKU。 在 Kubernetes 版本 1.25 到 1.35 中,使用 --os-sku Ubuntu 时默认的是 Ubuntu 22.04。
Linux AzureLinux 所有 Kubernetes 版本都支持此 OS SKU。 此 OS SKU 的 OS 版本会根据 Kubernetes 版本进行更改。 Azure Linux 2.0 默认为 Kubernetes 版本 1.27 到 1.31。 Azure Linux 3.0 将默认为 Kubernetes 版本 1.32+。 当在 AKS 1.31 上启用AzureLinuxV3Preview特性标志时,--os-sku AzureLinux默认为 3.0。
Linux AzureLinux3 Kubernetes 1.28 到 1.36 支持此 OS SKU。 如果要在不升级 Kubernetes 版本的情况下测试新的 OS 版本,建议使用此 OS SKU。 还可以使用此 OS SKU 从 Azure Linux 2.0 迁移到 Azure Linux 3.0。
Linux AzureLinuxOSGuard Kubernetes 版本 1.32 及更高版本中支持此 OS SKU。 Azure Linux 的 OS Guard 版本通过节点映像升级进行升级。 有关详细信息,请参阅 适用于 AKS 的 Azure Linux OS Guard
Linux 平板车 所有 Kubernetes 版本都支持此 OS SKU。 Flatcar 版本通过节点映像升级进行升级。 有关详细信息,请参阅 Flatcar Container Linux for AKS
Linux AzureContainerLinux Kubernetes 版本 1.34 及更高版本中支持此 OS SKU。 Azure Container Linux 版本通过节点映像升级来更新。
Windows操作系统 Windows2022 1.23 到 1.36 Kubernetes 1.25 到 1.35 版本中 Windows 操作系统类型的默认值
Windows操作系统 Windows2025 1.32 及更高版本 Kubernetes 1.36 及更高版本中 Windows 操作系统类型的默认值 需要支持 FIPS 的映像(--enable-fips-image)。

迁移到新的 OS 版本

在 AKS 上发布新的 OS 版本时,它最初在预览版中受支持。 在预览版中测试几个月后,AKS 会使新的 OS 版本正式发布(GA),然后将默认 OS SKU(UbuntuAzureLinux)更新到最新的 GA OS 版本。 此默认更新与新的 Kubernetes 版本版本一起发生。

建议使用新的 OS 版本测试非生产工作负荷(在预览版中可用)。 若要访问预览函数,请确保已安装预览扩展。 可以使用命令安装扩展 az extension add --name aks-preview

有两种方法可以迁移到新的 OS 版本:

  • 默认 OS SKU:如果使用默认 OS SKU,例如 Ubuntu,在升级 Kubernetes 版本时,您将自动获取最新的 GA 版本。 无需手动更改即可迁移到新的 OS 版本。 将 Kubernetes 版本升级到 1.35 或更高版本时,使用 Ubuntu OS SKU 的群集和节点池会自动迁移到 Ubuntu 24.04。
  • 带版本的 OS SKU:如果你使用的是带版本的 OS SKU,例如 Ubuntu2604Ubuntu2404AzureLinux3Windows2025,则需要手动迁移到新的 OS 版本,以避免 Kubernetes 升级被阻止。 如果使用 Linux OS,则可以更新现有节点池上的 OS SKU 以就地迁移。

更新现有节点池上的操作系统 SKU

使用 os-sku 命令更新现有节点池上的 az aks nodepool update。 如果预览版中提供了新的 OS 版本,此功能允许你将节点池迁移到新的 OS 版本,而无需升级 Kubernetes 版本。

注释

节点池更新命令不支持以下值:

  • --os-sku Windows2022
  • --os-sku Windows2025

相反,需要向群集添加节点池,其中包含你打算使用的相应 --os-sku

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --os-sku Ubuntu \
    --name $NODE_POOL_NAME

可以使用 az aks nodepool update 命令在任何受支持的 Linux os-sku之间迁移。 如果目标操作系统没有支持您使用的 Kubernetes 版本、虚拟机大小或 FIPS 启用功能的节点映像,该命令可能会失败。

迁移到 Ubuntu 26.04(预览版)

重要

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

Ubuntu 26.04 在 Kubernetes 版本 1.36 及更高版本中提供预览版。 通过指定 --os-sku Ubuntu2604,可使用 Ubuntu 26.04。

注释

迁移到 --os-sku Ubuntu2604时,请记住以下信息:

  • 在创建或将节点池更新到 Ubuntu 26.04 之前,先注册 Ubuntu2604Preview 功能标志。
  • Ubuntu 26.04 需要支持第 2 代 VM 的 VM 大小。
  • Ubuntu 26.04 使用适用于 AMD64 和 Arm64 的最小化节点镜像。
  • 不支持 FIPS可信启动

安装 aks-preview Azure CLI 扩展

  1. aks-preview 使用az extension add命令安装Azure CLI扩展。

    az extension add --name aks-preview
    
  2. 更新扩展,以确保使用 az extension update 命令安装最新版本。

    az extension update --name aks-preview
    

Ubuntu2604Preview在创建节点池或将节点池更新到 Ubuntu 26.04 之前,请在Azure订阅中注册功能标志。

注册 Ubuntu2604Preview 功能标志

  1. 使用 Ubuntu2604Preview 命令注册 az feature register 功能标志。

    az feature register \
        --namespace Microsoft.ContainerService \
        --name Ubuntu2604Preview
    

    需要几分钟,状态才会显示为已注册

  2. 使用 az feature show 命令验证注册状态。

    az feature show \
        --namespace Microsoft.ContainerService \
        --name Ubuntu2604Preview \
        --query properties.state
    
  3. 当状态显示为已注册时,使用命令刷新az provider register资源提供程序的注册。

    az provider register --namespace Microsoft.ContainerService
    

将现有节点池更新到 Ubuntu 26.04

使用--os-sku Ubuntu2604命令将现有节点池更新到az aks nodepool update

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --os-sku Ubuntu2604 \
    --name $NODE_POOL_NAME

回滚您的操作系统版本

在支持多个 OS 版本的 Kubernetes 版本中,可以使用 az aks nodepool update 该命令回滚到以前的 OS 版本。

在以下情况下,您可以考虑回滚 OS 版本:

  • 如果测试新操作系统版本时遇到问题。
  • 升级到支持将新操作系统版本设为默认版本的 Kubernetes 版本后,您可能需要回滚到默认的 UbuntuAzureLinux OS SKU。 这样,就可以在 Kubernetes 升级过程中获取将来的 OS 版本,而无需更新节点池。

将 OS 版本回滚到默认 OS SKU

可以使用 az aks nodepool update 命令更新现有节点池上的 os-sku。 如果您的 Kubernetes 版本支持早期的 OS 版本,则此功能可以让您回滚到之前的 OS 版本。

注释

节点池更新命令不支持以下值:

  • --os-sku Windows2022
  • --os-sku Windows2025

而是使用您要使用的相应 --os-sku 向集群添加节点池。 若要详细了解如何升级 WINDOWS FIPS 节点池的 OS 版本,请参阅升级Windows OS 版本

操作系统 SKU 默认 OS 版本
Ubuntu 如果 Kubernetes 版本为 1.25 到 1.34,且 OS SKU 是 Ubuntu,则默认的 OS 版本为 Ubuntu 22.04。 Ubuntu 24.04 是 Kubernetes 1.35 到 1.37 中 Ubuntu 的默认值。
AzureLinux 当您拥有 OS SKU 时,Azure Linux 2.0 是 Kubernetes 1.26 到 1.31 中 AzureLinux 的默认版本。 Azure Linux 3.0 是 Kubernetes 1.32 到 1.36 中 AzureLinux 的默认值。

将 OS SKU 更新到现有节点池上的 Ubuntu

在将您的节点池更新为使用 OS SKU Ubuntu 时,您将基于 Kubernetes 版本获得默认的 OS 版本。 如果在节点池更新命令期间 OS 版本发生更改,这可能会触发自动重置映像。

使用--os-sku Ubuntu命令更新现有节点池中的az aks nodepool update

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --os-sku Ubuntu \
    --name $NODE_POOL_NAME

可以使用 az aks nodepool update 命令在任何受支持的 Linux os-sku之间迁移。 如果目标操作系统没有支持您使用的 Kubernetes 版本、虚拟机大小或 FIPS 启用功能的节点映像,该命令可能会失败。

在现有节点池上将 OS SKU 更新为 Azure Linux

在将您的节点池更新为使用 OS SKU AzureLinux 时,您将基于 Kubernetes 版本获得默认的 OS 版本。 如果在节点池更新命令期间 OS 版本发生更改,这可能会触发自动重置映像。

使用--os-sku AzureLinux命令更新现有节点池中的az aks nodepool update

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --os-sku AzureLinux \
    --name $NODE_POOL_NAME

后续步骤

若要详细了解 AKS 上的节点映像、节点池升级和节点配置,请参阅以下资源: