对 ZonalAllocationFailed、AllocationFailed 或 OverconstrainedAllocationRequest 错误代码进行故障排除

本文介绍如何识别和解决ZonalAllocationFailedAllocationFailedOverconstrainedAllocationRequest尝试创建、部署或更新Microsoft Azure Kubernetes 服务(AKS)群集时可能发生的错误。

先决条件

  • Azure CLI (可选),版本 2.0.59 或更高版本。 如果已安装 Azure CLI,可以使用 az --version 找到其版本号。

  • Azure PowerShell (可选)。

症状

尝试创建 AKS 群集时,会收到以下错误消息:

调整 vmss 代理池错误:VMSSAgentPoolReconciler 重试失败。

类别:内部错误

SubCode:ZonalAllocationFailed;

依赖项:Microsoft.Compute/VirtualMachineScaleSet;

原始错误:Code=“ZonalAllocationFailed”

Message=“分配失败。对于此区域中请求的 VM 大小,我们没有足够的容量。 阅读有关提高分配成功的可能性的详细信息,请参阅 https://aka.ms/allocation-guidance“;

AKS团队: 节点配置

或者,尝试升级或纵向扩展群集时,会收到以下错误消息:

Code=“OverconstrainedAllocationRequest”

Message=“分配失败。无法分配具有以下约束的 VM(s),因为条件太严格。 请删除一些约束,然后重试。

或者,在群集中使用专用主机并尝试创建或纵向扩展节点池时,会收到以下错误消息:

Code=“AllocationFailed”

Message=“分配失败。对专用主机的 VM 分配失败。请确保专用主机有足够的容量或尝试在其他地方分配。

原因 1:SKU 中的有限区域可用性

你正在尝试部署、升级或纵向扩展特定 SKU 可用性有限的区域中的群集。

解决方案 1:使用不同的 SKU、可用区或区域

请尝试以下一个或多个方法:

  • 使用不同的 SKU 在同一区域中重新部署群集。
  • 在该区域的不同区域中重新部署群集。
  • 在不同的区域中重新部署群集。
  • 在不同的区域中创建新的节点池或使用其他 SKU。

有关如何修复此错误的详细信息,请参阅 解决 SKU 不可用的错误

原因 2:虚拟机容纳的约束过多

如果收到 OverconstrainedAllocationRequest 错误代码,Azure 计算平台无法分配新的虚拟机(VM),以满足所需的约束。 这些约束通常(但并非总是)包含以下项:

  • VM 大小
  • 虚拟机产品编号
  • 加速网络
  • 可用性区域
  • 临时磁盘
  • 邻近放置组 (PPG)

解决方案 2:不要将邻近放置组与节点池相关联

如果收到 OverconstrainedAllocationRequest 错误代码,可以尝试创建与邻近放置组不关联的新节点池。

原因 3:没有足够的专用主机或容错域

尝试在容量有限或不符合容错域约束的专用主机组中部署节点池。

解决方案 3:确保有足够的专用主机用于 AKS 节点/VMSS

根据 AKS 上的 ADH 容量规划,你负责规划足够的专用主机,以满足 AKS VMSS 所需的多个故障域。 例如,如果使用 FaultDomainCount=2 创建 AKS VMSS,则至少需要不同容错域中的两个专用主机(FaultDomain 0FaultDomain 1)。

详细信息

确保用户容量是Microsoft的首要任务,我们正在全天候工作,以实现此目标。 Azure 服务越来越受欢迎,强调需要更快速地纵向扩展基础结构。 考虑到这一点,我们正在加快扩展和改进资源部署过程,以响应强大的客户需求。 我们还每月增加大量计算基础结构。

我们确定了几种方法来改善在高资源使用情况下的负载均衡,以及如何触发所需资源的及时部署。 此外,我们正在显著增加容量,并将继续应对所有地区的强劲需求。 有关我们正在实现可复原云供应链的改进的详细信息,请参阅 通过弹性云供应链提高可靠性

参考文献

联系我们寻求帮助

如果有疑问,可以询问 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区