群集节点映像升级期间未升级到 Gen2 的 Windows Server 节点池

本文介绍如何排查在群集节点映像Microsoft Azure Kubernetes 服务(AKS)中升级群集节点映像时,Windows Server 节点池不会自动从 Gen1 升级到 Gen2 虚拟机(VM)的方案。

注意

此方案不适用于 Linux 节点池上的 Gen2 VM。

先决条件

现象

使用 Azure CLI 中的以下方法之一升级节点映像,现有 Windows Server 节点池不会从 Gen1 升级到 Gen2:

原因

原因 1:现有节点池不会自动升级到 Gen2 VM

根据设计,节点映像升级不支持更新或升级现有节点池。 命令az aks upgradeaz aks nodepool upgrade仅升级节点映像(升级到更高版本的节点映像)。 这些命令不会升级相应的 VM 生成。

原因 2:群集升级到 Kubernetes 版本 1.25 或更高版本仅升级 OS

将群集升级到 Kubernetes 版本 1.25 或更高版本时,仅将操作系统(OS)升级到 Windows Server 2022。 现有节点池不受影响。 关联的 VM 规模集将包含具有相同 Gen1 VM 的 VM。

原因 3:使用 Windows Server 2022 创建的群集升级和新节点池,而无需指定有效的 VM 大小

将群集升级到 Kubernetes 版本 1.25 或更高版本后,将 Windows Server 2022 指定为在节点池的 VM 上使用的 OS。 但是,由于以下原因之一,VM 不使用 Gen2 节点映像引用:

  • 不指定 VM 大小,区域中的默认 VM 大小不支持 Gen2 VM。

  • 指定仅限 Gen1 的 VM 大小。

将默认 OS 从 Windows Server 2019 (Windows2019) 升级到 Windows Server 2022(Windows2022)时,现有节点池不会自动升级到不同的 VM 代系。

解决方案

升级群集,然后根据以下准则创建一个新的 Windows Server 节点池,该节点池支持 该群集上的 Gen2 VM 大小

Kubernetes 群集升级版本 群集创建指南
1.25 或更高版本 运行 az aks create 命令以创建群集时,请将 --node-vm-size 参数设置为 Gen2 VM 大小
低于 1.25 的版本 运行 az aks create 命令以创建群集时,请将 --os-sku 参数值 Windows2022设置为,并将参数值设置为 --node-vm-size Gen2 VM 大小

注意

如果将 Gen2 VM 大小和操作系统指定为 Windows Server 2019,则会收到以下 ErrorCode_Windows2019NotSupportedWithGen2VM 错误消息附带的错误代码:

<虚拟机大小> 是仅限第 2 代 VM。 Windows2019 不支持第 2 代 VM。 但是,可以选择第 1 代 VM 大小或将os_sku设置为 2022。

若要避免此问题,请在创建群集时选择以下选项之一:

  • 选择要与 Windows Server 2019 一起使用的 Gen1 VM 大小。

  • 将操作系统 SKU 设置为 Windows Server 2022 以与 Gen2 VM 一起使用。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区