Felsöka felkoden SubnetIsFull
I den här artikeln beskrivs hur du identifierar och löser det SubnetIsFull
fel som uppstår när du försöker skala ett AKS-kluster (Microsoft Azure Kubernetes Service).
Förutsättningar
- Azure CLI (version 2.0.59 eller senare)
Symptom
När du försöker skala ett AKS-kluster får du följande felmeddelande:
"code": "SubnetIsFull"
"message": "Subnet subnet-name <> with address prefix <subnet-prefix> does not have enough capacity for <new-ip-count> IP addresses."
Orsak
Om du vill lägga till noder i ett AKS-kluster (skala ut) måste du använda fler IP-adresser från det undernät där nodpoolen distribueras. Det exakta antalet nya IP-adresser som krävs för att slutföra en klusterskalningsåtgärd varierar beroende på nätverkets plugin-program som klustret använder. Information om hur IP-adresser allokeras under var och en av dessa nätverksmodeller finns i Nätverksbegrepp för program i AKS.
Kommentar
Azure reserverar fem IP-adresser per undernät. Den första adressen i undernätet är för nätverks-ID:t följt av tre adresser som används internt av Azure. Den sista adressen i undernätet är reserverad för sändningspaket. Mer information finns i Finns det några begränsningar för att använda IP-adresser i sådana undernät?
Lösning
Det finns för närvarande inte stöd för att försöka uppdatera adressutrymmet för klasslös routning mellan domäner (CIDR) i en befintlig nodpool. Följ dessa steg för att migrera dina arbetsbelastningar till en ny nodpool i ett större undernät:
Skapa ett undernät i det virtuella klustrets nätverk som innehåller ett större CIDR-adressintervall än det befintliga undernätet. Information om hur du storleksanpassar undernätet för klustret finns i Planera IP-adressering för klustret.
Skapa en nodpool i det nya undernätet genom att köra kommandot az aks nodepool add tillsammans med parametern
--vnet-subnet-id
.Migrera dina arbetsbelastningar till den nya nodpoolen genom att tömma noderna i den gamla nodpoolen. Information om hur du på ett säkert sätt tömmer AKS-arbetsnoder finns i Töm en nod på ett säkert sätt.
Ta bort den ursprungliga nodpoolen genom att köra kommandot az aks nodepool delete .
Mer information
Ansvarsfriskrivning för tredje part
Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.