本文討論如何識別並解決當您嘗試升級 Azure Kubernetes Service (AKS) 叢集時所發生的“SubnetIsFull” 錯誤。
以下是錯誤訊息的範例:
在 Kubernetes 服務 '<NAME>' 中,調整節點池<AGENT POOL NAME>'失敗。 錯誤:VMSSAgentPoolReconciler 重試失敗:Code='SubnetIsFull' Message='<SUBNET NAME>\ 擁有地址前綴 <PREFIX>\ 沒有足夠的 IP 位址容量。' 詳情=[]
先決條件
本文需要 Azure CLI 2.0.65 版或更新版本。 若要尋找版本號碼,請執行 az --version。 如果您必須安裝或升級 Azure CLI,請參閱 如何安裝 Azure CLI。
如需升級程式的詳細資訊,請參閱升級 Azure Kubernetes Service (AKS) 叢集中的 <升級 AKS 叢集>一節。
癥狀
AKS 叢集升級失敗,而且您會收到「SubnetIsFull」錯誤訊息。
原因
如果您的叢集沒有足夠的IP位址來建立新的節點,就會發生此錯誤。
當您打算執行升級或調整作業時,請考慮所需的IP位址數目。 如果您在叢集中設定的IP位址範圍只支援固定數目的節點,升級或調整作業將會失敗。 如需詳細資訊,請參閱 Azure Kubernetes Service (AKS) 叢集的 IP 位址規劃。
解決方法
減少叢集節點,以保留升級的IP位址。
如果縮減規模不是選項,且您的虛擬網路 CIDR 有足夠的 IP 位址,請嘗試新增具有 唯一子網的節點池:
- 在較大型子網的虛擬網路中新增用戶節點集區。
- 將原始節點集區切換至系統節點集區類型。
- 擴大用戶節點集區。
- 縮減原始節點集區規模。
詳細資訊
與我們連絡,以取得說明
如果您有疑問,可以詢問 Azure 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。