本文介绍可用于 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 CLI 或 API。
- --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(Ubuntu 或 AzureLinux)更新到最新的 GA OS 版本。 此默认更新与新的 Kubernetes 版本版本一起发生。
建议使用新的 OS 版本测试非生产工作负荷(在预览版中可用)。 若要访问预览函数,请确保已安装预览扩展。 可以使用命令安装扩展 az extension add --name aks-preview 。
有两种方法可以迁移到新的 OS 版本:
- 默认 OS SKU:如果使用默认 OS SKU,例如 或
Ubuntu,在升级 Kubernetes 版本时,您将自动获取最新的 GA 版本。 无需手动更改即可迁移到新的 OS 版本。 将 Kubernetes 版本升级到 1.35 或更高版本时,使用UbuntuOS SKU 的群集和节点池会自动迁移到 Ubuntu 24.04。 -
带版本的 OS SKU:如果你使用的是带版本的 OS SKU,例如
Ubuntu2604、Ubuntu2404、AzureLinux3或Windows2025,则需要手动迁移到新的 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时,请记住以下信息:
安装 aks-preview Azure CLI 扩展
aks-preview使用az extension add命令安装Azure CLI扩展。az extension add --name aks-preview更新扩展,以确保使用
az extension update命令安装最新版本。az extension update --name aks-preview
Ubuntu2604Preview在创建节点池或将节点池更新到 Ubuntu 26.04 之前,请在Azure订阅中注册功能标志。
注册 Ubuntu2604Preview 功能标志
使用
Ubuntu2604Preview命令注册az feature register功能标志。az feature register \ --namespace Microsoft.ContainerService \ --name Ubuntu2604Preview需要几分钟,状态才会显示为已注册。
使用
az feature show命令验证注册状态。az feature show \ --namespace Microsoft.ContainerService \ --name Ubuntu2604Preview \ --query properties.state当状态显示为已注册时,使用命令刷新
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 版本后,您可能需要回滚到默认的
Ubuntu或AzureLinuxOS 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 上的节点映像、节点池升级和节点配置,请参阅以下资源: