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

本文介绍可用于 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 上的节点映像、节点池升级和节点配置,请参阅以下资源: