排查 SubnetIsFull 错误代码问题
本文介绍如何识别并解决SubnetIsFull
尝试缩放Microsoft Azure Kubernetes 服务(AKS)群集时发生的错误。
先决条件
- Azure CLI (版本 2.0.59 或更高版本)
现象
尝试缩放 AKS 群集时,会收到以下错误消息:
“code”: “SubnetIsFull”
“message”: “subnet <subnet-name> with address prefix <subnet-prefix> does not enough capacity for <new-ip-count> IP address.
原因
若要将节点添加到 AKS 群集(横向扩展),必须使用部署节点池的子网中的更多 IP 地址。 成功完成群集缩放操作所需的新 IP 地址的确切数量因群集使用的网络插件而异。 有关如何在这些网络模型中分配 IP 地址的信息,请参阅 AKS 中应用程序的网络概念。
注意
Azure 为每个子网保留五个 IP 地址。 子网中的第一个地址用于网络 ID,后跟 Azure 内部使用的三个地址。 子网中的最后一个地址是为广播数据包保留的。 有关详细信息,请参阅使用这些子网中的 IP 地址是否有任何限制?
解决方案
目前不支持尝试更新子网的无类域间路由(CIDR)地址空间。 若要将工作负荷迁移到较大子网中的新节点池,请执行以下步骤:
在群集虚拟网络中创建一个子网,其中包含比现有子网更大的 CIDR 地址范围。 有关如何适当调整群集子网大小的信息,请参阅 群集的计划 IP 寻址。
通过运行 az aks nodepool add 命令和
--vnet-subnet-id
参数,在新子网上创建节点池。通过清空旧节点池中的节点,将工作负荷迁移到新节点池。 有关如何安全地清空 AKS 工作节点的信息,请参阅 “安全清空节点”。
通过运行 az aks nodepool delete 命令删除原始节点池。
详细信息
第三方联系人免责声明
Microsoft 会提供第三方联系信息来帮助你查找有关本主题的其他信息。 此联系信息可能会更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。