对 SubnetIsFull 错误代码进行故障排除

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

先决条件

症状

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

“code”:“SubnetIsFull”

“message”:“地址前缀<为 subnet-prefix <> 的子网名称>没有足够的容量来容纳 <new-ip-count> IP 地址。”

原因

若要将节点添加到 AKS 群集 (横向扩展) ,必须使用部署节点池的子网中的更多 IP 地址。 成功完成群集缩放操作所需的新 IP 地址的确切数目因群集使用的网络插件而异。 有关如何在每个网络模型下分配 IP 地址的信息,请参阅 AKS 中应用程序的网络概念

注意

Azure 为每个子网保留五个 IP 地址。 子网中的第一个地址用于网络 ID,然后是 Azure 内部使用的三个地址。 子网中的最后一个地址是为广播数据包保留的。 有关详细信息,请参阅 在这些子网中使用 IP 地址是否有任何限制?

解决方案

目前不支持尝试在现有节点池中更新子网的无类 Inter-Domain 路由 (CIDR) 地址空间。 若要将工作负载迁移到较大子网中的新节点池,请执行以下步骤:

  1. 在群集虚拟网络中创建一个子网,其中包含比现有子网更大的 CIDR 地址范围。 有关如何为群集适当调整子网大小的信息,请参阅 规划群集的 IP 寻址

  2. 通过运行 az aks nodepool add 命令和 --vnet-subnet-id 参数,在新子网上创建节点池。

  3. 通过清空旧节点池中的节点,将工作负载迁移到新节点池。 有关如何安全清空 AKS 工作器节点的信息,请参阅 安全清空节点

  4. 通过运行 az aks nodepool delete 命令删除原始节点池。

更多信息

第三方联系人免责声明

Microsoft 提供第三方联系信息,帮助你查找有关本主题的其他信息。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。

联系我们寻求帮助

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