Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Overzicht
In dit artikel wordt uitgelegd hoe u de SubnetIsFull-fout kunt identificeren en oplossen die optreedt wanneer u een upgrade uitvoert van een Azure Kubernetes Service (AKS)-cluster. Hiermee kunt u de upgrade voltooien.
Hier volgt een voorbeeld van het foutbericht:
Niet gelukt om knooppuntgroep <AGENT POOL NAME> te schalen in Kubernetes-service '<NAME>'. Fout: Het opnieuw proberen van VMSSAgentPoolReconciler is mislukt: Code='SubnetIsFull' Message='<SUBNET NAME> met adresvoorvoegsel <PREFIX> heeft onvoldoende capaciteit voor IP-adressen.' Details=[]
Vereiste voorwaarden
Voor dit artikel is Azure CLI versie 2.0.65 of een nieuwere versie vereist. Voer het versienummer uit az --versionom het versienummer te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Het installeren van de Azure CLI.
Zie de sectie "Upgrade een AKS-cluster" in Upgrade een Azure Kubernetes Service (AKS) cluster voor meer gedetailleerde informatie over het upgradeproces.
Symptomen
Een upgrade van een AKS-cluster mislukt en u ontvangt het foutbericht 'SubnetIsFull'.
Oorzaak
Deze fout treedt op als uw cluster niet voldoende IP-adressen heeft om een nieuw knooppunt te maken.
Wanneer u een upgrade- of schaalbewerking plant, moet u rekening houden met het aantal vereiste IP-adressen. Als het IP-adresbereik dat u in het cluster hebt geconfigureerd, slechts een vast aantal knooppunten ondersteunt, mislukt de upgrade- of schaalbewerking. Zie IP-adresplanning voor uw AKS-clusters (Azure Kubernetes Service) voor meer informatie.
Controleer de beschikbare IP-adressen in het subnet
Voordat u corrigerende maatregelen neemt, controleert u hoeveel IP-adressen er beschikbaar zijn in het subnet dat is gekoppeld aan uw AKS-cluster.
Om de beschikbare IP-adressen te controleren in de Azure portal:
- Ga naar de service Virtuele netwerken .
- Selecteer het virtuele netwerk dat is gekoppeld aan uw AKS-cluster.
- Selecteer Subnetten in het menu.
- Controleer de kolom Beschikbare IP-adressen voor het subnet dat door uw cluster wordt gebruikt.
U kunt ook de volgende Azure CLI opdrachten uitvoeren om beschikbare IP-adressen te controleren:
# Get the subnet resource ID for the node pool.
# For clusters that use a custom VNet, the subnet ID is stored in the agent pool profile:
SUBNET_ID=$(az aks show \
--resource-group <RESOURCE_GROUP> \
--name <CLUSTER_NAME> \
--query "agentPoolProfiles[0].vnetSubnetId" \
--output tsv)
# If the cluster uses a managed VNet (SUBNET_ID is empty),
# retrieve the subnet from the node resource group instead:
if [[ -z "$SUBNET_ID" ]]; then
NODE_RESOURCE_GROUP=$(az aks show \
--resource-group <RESOURCE_GROUP> \
--name <CLUSTER_NAME> \
--query "nodeResourceGroup" \
--output tsv)
SUBNET_ID=$(az network vnet list \
--resource-group "$NODE_RESOURCE_GROUP" \
--query "[0].subnets[0].id" \
--output tsv)
fi
# Display the subnet details and calculate available IPs
az network vnet subnet show \
--ids "$SUBNET_ID" \
--query "{SubnetName:name, AddressPrefix:addressPrefix, UsedIPs:length(ipConfigurations || \`[]\`)}" \
--output json | jq -r '
.AddressPrefix as $prefix |
($prefix | split("/")[1] | tonumber) as $prefixLen |
pow(2; 32 - $prefixLen) as $totalIPs |
5 as $reserved |
(.UsedIPs // 0) as $used |
($totalIPs - $reserved - $used) as $available |
["SubnetName", "AddressPrefix", "TotalIPs", "UsedIPs", "AzureReserved", "AvailableIPs"],
[.SubnetName, $prefix, ($totalIPs | tostring), ($used | tostring), ($reserved | tostring), ($available | tostring)]
| @tsv' | column -t
De uitvoer lijkt op het volgende voorbeeld:
SubnetName AddressPrefix TotalIPs UsedIPs AzureReserved AvailableIPs
aks-subnet xx.xxx.x.x/16 65536 327 5 65204
Opmerking
Dit script vereist dat jq is geïnstalleerd. Azure reserveert vijf (5) IP-adressen in elk subnet. Zie Zijn er beperkingen voor het gebruik van IP-adressen binnen deze subnetten? voor meer informatie.
Als het aantal beschikbare IP-adressen laag is (bijvoorbeeld minder dan het aantal knooppunten dat u tijdens de upgrade toevoegt), gaat u verder met de oplossing in de volgende sectie.
Oplossing
Verminder de clusterknooppunten om IP-adressen voor de upgrade te reserveren.
Als omlaag schalen geen optie is en uw VIRTUELE netwerk-CIDR voldoende IP-adressen heeft, probeert u een knooppuntgroep met een uniek subnet toe te voegen:
- Voeg een nieuwe gebruikersknooppuntgroep toe aan het virtuele netwerk in een groter subnet.
- Schakel de oorspronkelijke knooppuntgroep over naar een type systeemknooppuntgroep.
- Schaal de gebruikersknooppuntgroep omhoog.
- Schaal de oorspronkelijke knooppuntgroep omlaag.