針對 SubnetIsFull 錯誤碼進行疑難解答

本文討論如何識別及解決SubnetIsFull當您嘗試調整 Microsoft Azure Kubernetes Service (AKS) 叢集時所發生的錯誤。

必要條件

徵狀

當您嘗試調整 AKS 叢集時,您會收到下列錯誤訊息:

“code”: “SubnetIsFull”

「訊息」:「具有位址前綴子網前綴><的子網<子網名稱>沒有足夠的容量可供 <new-ip-count> IP 位址使用。」

原因

若要將節點新增至 AKS 叢集 (相應放大) ,您必須從部署節點集區的子網使用更多 IP 位址。 成功完成叢集調整作業所需的確切新IP位址數目,會根據叢集使用的網路外掛程式而有所不同。 如需如何在每個網路模型下配置 IP 位址的詳細資訊,請參閱 AKS 中應用程式的網路概念

注意事項

Azure 會為每個子網保留五個 IP 位址。 子網中的第一個位址是用於網路標識符,後面接著 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 community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群