本文介绍可用于 Azure Kubernetes 服务(AKS)节点的 OS 版本,以及测试和升级 OS 版本的最佳做法。
谨慎
本文引用了 AKS 弃用的 Ubuntu OS 版本:
从 2025 年 6 月 17 日开始,AKS 将不再支持 Ubuntu 18.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 通过将 节点池升级到 受支持的 Kubernetes 版本,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 停用:AKS 上的 Ubuntu 18.04 节点池。
从 2027 年 3 月 17 日开始,AKS 将不再支持 Ubuntu 20.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 通过将 节点池升级到 Kubernetes 版本 1.34+,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 停用:AKS 上的 Ubuntu 20.04 节点池。
重要
从 2025 年 11 月 30 日开始,AKS 将不再支持或提供 Azure Linux 2.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.32。 |
Linux | Ubuntu2404 | 此 OS SKU 仅在 Kubernetes 1.32 到 1.38 中受支持。 | Ubuntu 24.04 现已提供预览版,可与 Kubernetes 1.32+ 一起使用 --os-sku Ubuntu2404 。 如果要在不升级 Kubernetes 版本的情况下测试新的 OS 版本,建议使用此 OS SKU。 |
Linux | Ubuntu2204 | Kubernetes 版本 1.25 到 1.33 支持此 OS SKU。 | 使用--os-sku Ubuntu 时,当前默认为 Ubuntu 22.04。 如果需要在测试 Ubuntu 24.04 后回滚到 Ubuntu 22.04,建议使用此 OS SKU。 |
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。 |
Windows操作系统 | Windows2019 | 1.14-1.32 | Kubernetes 版本 1.14 到 1.24 中的 Windows OS 类型默认值。 |
Windows操作系统 | Windows2022 | 1.23 到 1.34 | Kubernetes 版本 1.25 到 1.33 中的 Windows OS 类型默认值。 |
迁移到新的 OS 版本
在 AKS 上发布新的 OS 版本时,它会在预览版中得到支持,直到它成为一般可用和默认版本。 建议使用新的 OS 版本测试非生产工作负荷(在预览版中可用)。 若要访问预览函数,请确保已安装预览扩展。 可以使用命令安装扩展 az extension add --name aks-preview
。
更新现有节点池上的操作系统 SKU
使用 os-sku
命令更新现有节点池上的 az aks nodepool update
。 如果预览版中提供了新的 OS 版本,此功能允许你将节点池迁移到新的 OS 版本,而无需升级 Kubernetes 版本。
注释
节点池更新命令不支持以下值:
--os-sku Windows2019
--os-sku Windows2022
相反,需要创建群集或向群集添加节点池,其中包含要使用的相应 --os-sku
。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-type Linux \
--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 通过指定 --os-sku Ubuntu2404
提供预览版。
注释
迁移到 --os-sku Ubuntu2404
时,请记住以下信息:
-
--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 或更高版本。 若要查找 CLI 版本,请运行
az --version
。 如果需要安装或升级,请参阅 安装 Azure CLI。
安装 aks-preview
扩展
使用
aks-preview
命令安装az extension add
Azure CLI 扩展。重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
az extension add --name aks-preview
使用
az extension update
命令更新到扩展的最新版本。 Ubuntu 24.04 至少需要 18.0.0b5。az extension update --name aks-preview
注册 Ubuntu2404Preview
功能标志
使用
Ubuntu2404Preview
命令注册az feature register
功能标志。az feature register --namespace "Microsoft.ContainerService" --name "Ubuntu2404Preview"
使用
az feature show
命令验证注册状态。 几分钟后,状态将显示为“已注册”。az feature show --namespace Microsoft.ContainerService --name Ubuntu2404Preview
当状态反映为已注册时,使用 命令刷新
az provider register
资源提供程序的注册。az provider register --namespace Microsoft.ContainerService
更新节点池以使用 Ubuntu 24.04
使用--os-sku Ubuntu2404
命令更新现有节点池中的az aks nodepool update
。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-type Linux \
--os-sku Ubuntu2404 \
--kubernetes-version 1.32.0 \
--name $NODE_POOL_NAME \
--node-count 1
迁移到 Azure Linux 3.0
在 Kubernetes 版本 1.32-1.36 中,Azure Linux 3.0 是 --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。
更新节点池以使用 Azure Linux 3.0
使用--os-sku AzureLinux3
命令更新现有节点池中的az aks nodepool update
。
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--os-type Linux \
--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
或AzureLinux
OS SKU。 这样,就可以在 Kubernetes 升级过程中获取将来的 OS 版本,而无需更新节点池。
将 OS 版本回滚到默认 OS SKU
可以使用 az aks nodepool update
命令更新现有节点池上的 os-sku
。 如果您的 Kubernetes 版本支持早期的 OS 版本,则此功能可以让您回滚到之前的 OS 版本。
注释
节点池更新命令不支持以下值:
--os-sku Windows2019
--os-sku Windows2022
操作系统 SKU | 默认 OS 版本 |
---|---|
Ubuntu | 如果 Kubernetes 版本为 1.25-1.34,并且 OS SKU Ubuntu ,则 Ubuntu 22.04 是默认的操作系统版本。 Ubuntu 24.04 是 Kubernetes 1.35-1.37 中 Ubuntu 的默认值。 |
AzureLinux | 如果您具有 OS SKU AzureLinux ,在 Kubernetes 1.26-1.31 中,Azure Linux 2.0 是 Azure Linux 的默认版本。 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-type Linux \
--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-type Linux \
--os-sku AzureLinux \
--name $NODE_POOL_NAME \
--node-count 1
回滚到 Ubuntu 22.04
注释
迁移到 --os-sku Ubuntu2404
时,请记住以下信息:
-
--os-sku Ubuntu2204
不支持 FIPS。
- Kubernetes 版本 1.25 到 1.33 支持 Ubuntu 24.04。
--os-sku Ubuntu2204
用于将当前 Kubernetes 版本回滚至 Ubuntu 22.04。 需要将 OS SKU 更新为受支持的 OS 选项,将 Kubernetes 版本升级到 1.34+。
使用--os-sku Ubuntu2204
命令将现有节点池还原到az aks nodepool update
。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Linux \
--os-sku Ubuntu2204 \
--kubernetes-version 1.32.0 \
--name $NODE_POOL_NAME \
--node-count 1
后续步骤
若要详细了解 AKS 上的节点映像、节点池升级和节点配置,请参阅以下资源: