排查 AKS 群集升级期间“SubnetIsFull”错误代码的问题

本文讨论如何识别和解决尝试升级 Azure Kubernetes 服务 (AKS) 群集时发生的“SubnetIsFull”错误。

下面是错误消息的示例:

未能缩放 Kubernetes 服务“NAME”中的节点池<代理池名称>>。< 错误:VMSSAgentPoolReconciler 重试失败:Code='SubnetIsFull' Message='<SUBNET NAME>\,地址前缀 <PREFIX>\ 没有足够的 IP 地址容量。' Details=[]

先决条件

本文需要 Azure CLI 版本 2.0.65 或更高版本。 若要查找版本号,请运行 az --version。 如果必须安装或升级 Azure CLI,请参阅 如何安装 Azure CLI

有关升级过程的更多详细信息,请参阅升级 AKS) 群集中的“升级 AKS 群集”一节Azure Kubernetes 服务 (。

症状

AKS 群集升级失败,并收到“SubnetIsFull”错误消息。

原因

如果群集没有足够的 IP 地址来创建新节点,则会发生此错误。

计划执行升级或缩放操作时,请考虑所需的 IP 地址数。 如果在群集中配置的 IP 地址范围仅支持固定数量的节点,则升级或缩放操作将失败。 有关详细信息,请参阅在 Azure Kubernetes 服务 (AKS) 中配置 Azure CNI 网络的“规划群集 IP 寻址”部分。

解决方案

减少群集节点以保留升级的 IP 地址。

如果缩减不是一个选项,并且虚拟网络 CIDR 具有足够的 IP 地址,请尝试添加具有 唯一子网的节点池:

  1. 在较大子网上的虚拟网络中添加新的用户节点池。
  2. 将原始节点池切换到系统节点池类型。
  3. 纵向扩展用户节点池。
  4. 缩减原始节点池。

联系我们寻求帮助

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