本文介绍如何识别和解决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 0 和 FaultDomain 1)。
详细信息
确保用户容量是Microsoft的首要任务,我们正在全天候工作,以实现此目标。 Azure 服务越来越受欢迎,强调需要更快速地纵向扩展基础结构。 考虑到这一点,我们正在加快扩展和改进资源部署过程,以响应强大的客户需求。 我们还每月增加大量计算基础结构。
我们确定了几种方法来改善在高资源使用情况下的负载均衡,以及如何触发所需资源的及时部署。 此外,我们正在显著增加容量,并将继续应对所有地区的强劲需求。 有关我们正在实现可复原云供应链的改进的详细信息,请参阅 通过弹性云供应链提高可靠性。
参考文献
联系我们寻求帮助
如果有疑问,可以询问 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。