本文介绍可用于 Azure Kubernetes 服务(AKS)节点的 OS 版本,以及测试和升级 OS 版本的最佳做法。
谨慎
本文引用了 AKS 弃用的 Ubuntu 和 Azure Linux OS 版本:
- 从 2027 年 3 月 17 日开始,AKS 将不再支持 Ubuntu 20.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 通过将 节点池升级到 Kubernetes 版本 1.34+,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 停用:AKS 上的 Ubuntu 20.04 节点池。
- 自 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 版本。 有关详细信息,请参阅 AKS 上的 Azure Linux 2.0 节点池。
支持的操作系统版本
每个 节点映像 对应于可以使用 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 版本。- 对于 Windows,我们建议在指定
--os-type Windows和--os-sku Windows2022时创建节点池。 当新 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 | 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 | 平板车 | 所有 Kubernetes 版本都支持此 OS SKU。 | Flatcar 版本通过节点映像升级进行升级。 有关详细信息,请参阅 Flatcar Container Linux for AKS。 |
| Windows操作系统 | Windows2019 | 1.14 到 1.32 | Kubernetes 版本 1.14 到 1.24 中的 Windows OS 类型默认值。 |
| Windows操作系统 | Windows2022 | 1.23 到 1.34 | Kubernetes 版本 1.25 到 1.34 中的 Windows OS 类型默认值。 |
迁移到新的 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 版本。 -
版本化 OS SKU:如果使用版本化的 OS SKU,例如
Ubuntu2404、AzureLinux3或Windows2025,则需要手动迁移到新的 OS 版本,以避免导致 Kubernetes 升级被阻。 如果使用 Linux OS,则可以更新现有节点池上的 OS SKU 以手动迁移。
更新现有节点池上的操作系统 SKU
使用 os-sku 命令更新现有节点池上的 az aks nodepool update。 如果预览版中提供了新的 OS 版本,此功能允许你将节点池迁移到新的 OS 版本,而无需升级 Kubernetes 版本。
注释
节点池更新命令不支持以下值:
--os-sku Windows2019--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 \
--node-count 1
可以使用 az aks nodepool update 命令在任何受支持的 Linux os-sku之间迁移。 如果目标操作系统没有支持您使用的 Kubernetes 版本、虚拟机大小或 FIPS 启用功能的节点映像,该命令可能会失败。
迁移到 Ubuntu 24.04
Ubuntu 24.04 是 Kubernetes 版本 1.35+ 中的默认值 --os-sku Ubuntu 。 还可以通过指定 --os-sku Ubuntu2404使用 Ubuntu 24.04。
注释
迁移到 --os-sku Ubuntu2404时,请记住以下信息:
- 不支持 FIPS。
- Kubernetes 版本 1.32 到 1.38 支持 Ubuntu 24.04。
- 在将 Kubernetes 版本升级到 1.39+ 之前,需要将 OS SKU 更新为受支持的 OS 选项。
--os-sku Ubuntu2404是一个选项,用于测试新的 OS Linux 版本,而无需升级 Kubernetes 版本。 - 需要安装和配置预览版 Azure CLI 版本 18.0.0b5 或更高版本以用于预览,以及版本 2.82.0 用于正式版。 若要查找 CLI 版本,请运行
az --version。 如果需要安装或升级,请参阅 安装 Azure CLI。
使用--os-sku Ubuntu2404命令更新现有节点池中的az aks nodepool update。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-sku Ubuntu2404 \
--kubernetes-version 1.32.0 \
--name $NODE_POOL_NAME \
--node-count 1
迁移到 Azure Linux 3.0
Azure Linux 3.0 是 Kubernetes 版本 1.32 到 1.36 的默认操作系统 --os-sku AzureLinux 。 还可以通过指定 --os-sku AzureLinux3来使用 Azure Linux 3.0。
注释
迁移到 --os-sku AzureLinux3时,请记住以下信息:
- Kubernetes 版本 1.28 到 1.36 支持
--os-sku AzureLinux3。 -
--os-sku AzureLinux3旨在迁移到 Azure Linux 3.0,而无需升级 Kubernetes 版本。 在将 Kubernetes 版本升级到 1.37+ 之前,需要将 OS SKU 更新为受支持的 OS 选项。 - 对于预览版,需要安装和配置 Azure CLI 版本 18.0.0b36 或更高版本;对于正式版,需要安装和配置 2.78.0 版或更高版本。 若要查找 CLI 版本,请运行
az --version。 如果需要安装或升级,请参阅 安装 Azure CLI。
使用--os-sku AzureLinux3命令更新现有节点池中的az aks nodepool update。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-sku AzureLinux3 \
--kubernetes-version 1.30.0 \
--name $NODE_POOL_NAME \
--node-count 1
回滚您的操作系统版本
在支持多个 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 Windows2019--os-sku Windows2022--os-sku Windows2025
相反,需要向群集添加节点池,其中包含你打算使用的相应 --os-sku。
| 操作系统 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 \
--node-count 1
可以使用 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 \
--node-count 1
回滚到 Ubuntu 22.04
注释
迁移到 --os-sku Ubuntu2204时,请记住以下信息:
- FIPS。
- Kubernetes 版本 1.25 到 1.35 支持 Ubuntu 22.04。
-
--os-sku Ubuntu2204用于将当前 Kubernetes 版本回滚至 Ubuntu 22.04。 需要将 OS SKU 更新为受支持的 OS 选项,将 Kubernetes 版本升级到 1.36 及更高版本。
使用--os-sku Ubuntu2204命令将现有节点池还原到az aks nodepool update。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-sku Ubuntu2204 \
--kubernetes-version 1.32.0 \
--name $NODE_POOL_NAME \
--node-count 1
后续步骤
若要详细了解 AKS 上的节点映像、节点池升级和节点配置,请参阅以下资源: