本文介绍可用于 Azure Kubernetes 服务(AKS)节点的 OS 版本,以及测试和升级 OS 版本的最佳做法。
谨慎
本文中提到了一些正在被 AKS 弃用的 Ubuntu 操作系统版本。
- 从 2025 年 6 月 17 日开始,AKS 将不再支持 Ubuntu 18.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 通过将 节点池升级到 受支持的 kubernetes 版本,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 AKS GitHub 问题。
- 从 2027 年 3 月 17 日开始,AKS 将不再支持 Ubuntu 20.04。 将删除现有节点映像,AKS 将不再提供安全更新。 你将无法再缩放节点池。 通过将 节点池升级到 kubernetes 版本 1.34+,迁移到受支持的 Ubuntu 版本。 有关此停用的详细信息,请参阅 AKS GitHub 问题。
支持的操作系统版本
每个 节点映像 对应于可以使用 OS SKU 指定的 OS 版本。 创建群集和节点池时,可以指定以下参数:
- --os-type:OS 类型,包括 Linux 或 Windows。 群集创建或更新期间无法指定 Windows OS 类型。
- --os-sku:用于指定 OS 版本或 OS 变体。 群集创建或更新期间无法指定 Windows OS SKU。
- --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 | kubernetes 1.32 到 1.38 支持此 OS SKU。 | Ubuntu 24.04 提供预览版,K8s 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 | Azure Linux | 所有 Kubernetes 版本都支持此 OS SKU。 | 此 OS SKU 的 OS 版本会根据 Kubernetes 版本进行更改。 Azure Linux 2.0 默认为 Kubernetes 版本 1.27 到 1.31。 Azure Linux 3.0 将默认为 Kubernetes 版本 1.32+。 |
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 类型默认值。 |
在 AKS 上发布新的 OS 版本时,它会在预览版中得到支持,直到它成为一般可用和默认版本。 建议使用新的 OS 版本测试非生产工作负荷(在预览版中可用)。
更新现有节点池上的操作系统 SKU
可以使用 az aks nodepool update
命令更新现有节点池上的 os-sku
。 如果预览版中提供了新的 OS 版本,此功能允许你将节点池迁移到新的 os 版本,而无需升级 kubernetes 版本。
局限性
-
--os-sku Windows2019
不是节点池更新命令的有效os-sku
。 -
--os-sku Windows2022
不是节点池更新命令的有效os-sku
。
使用os-sku
命令更新az aks nodepool update
。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Linux \
--os-sku Ubuntu \
--name npwin \
--node-count 1
该 az aks nodepool update
命令可用于在任何受支持的 Linux os-sku
之间迁移。 如果目标操作系统没有支持 kubernetes 版本、vm 大小或 FIPS 启用的节点映像,则命令可能会失败。
在支持多个 OS 版本的 kubernetes 版本中,可以使用 az aks nodepool update
该命令回滚到以前的 OS 版本。
例如,如果在使用 Ubuntu 24.04 时遇到问题,则可以更新节点池 os-sku
以指定 Ubuntu 22.04 以解决维护工作负荷可用性时出现的问题。
在现有节点池上回滚操作系统版本
可以使用 az aks nodepool update
命令更新现有节点池上的 os-sku
。 如果 kubernetes 版本支持先前的操作系统版本,此功能可供回滚操作系统版本。
局限性
-
--os-sku Windows2019
不是节点池更新命令的有效os-sku
。 -
--os-sku Windows2022
不是节点池更新命令的有效os-sku
。
使用os-sku
命令更新az aks nodepool update
。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Linux \
--os-sku Ubuntu2204 \
--name npwin \
--node-count 1
该 az aks nodepool update
命令可用于在任何受支持的 Linux os-sku
之间迁移。 如果目标操作系统没有支持 kubernetes 版本、vm 大小或 FIPS 启用的节点映像,则命令可能会失败。
后续步骤
若要详细了解 AKS 上的节点映像、节点池升级和节点配置,请参阅以下资源: