Veelvoorkomende problemen bij het uitvoeren of schalen van grote AKS-clusters
In dit artikel vindt u antwoorden op veelgestelde vragen over veelvoorkomende problemen die kunnen optreden wanneer u grote clusters uitvoert of schaalt in Microsoft Azure Kubernetes Service (AKS). Een groot cluster is een cluster dat op meer dan 500 knooppuntschaal wordt uitgevoerd.
Ik krijg de foutmelding 'quotum overschreden' tijdens het maken, omhoog schalen of upgraden
Als u dit probleem wilt oplossen, maakt u een ondersteuningsaanvraag in het abonnement waarin u probeert te maken, schalen of upgraden en vraagt u een quotum aan voor het bijbehorende resourcetype. Zie regionale rekenquota voor meer informatie.
Ik krijg de foutmelding 'insufficientSubnetSize' wanneer ik een AKS-cluster implementeer dat gebruikmaakt van geavanceerde netwerken
Deze fout geeft aan dat een subnet dat wordt gebruikt voor een cluster, geen ip-adressen meer heeft binnen de CIDR voor een geslaagde resourcetoewijzing. Dit probleem kan optreden tijdens upgrades, uitschalen of het maken van een knooppuntgroep. Dit probleem treedt op omdat het aantal gratis IP-adressen in het subnet kleiner is dan het resultaat van de volgende formule:
aantal aangevraagde knooppunten * waarde van knooppuntgroep
--max-pod
Voorwaarden
Als u meer dan 400 knooppunten wilt schalen, moet u de Azure CNI-netwerkinvoegtoepassing gebruiken.
Zie de planning van IP-adressen voor uw cluster om uw virtuele netwerk en subnetten te plannen voor het aantal knooppunten en pods dat u implementeert. Zie Dynamische IP-toewijzing om de overhead van subnetplanning of het opnieuw maken van het cluster te verminderen.
Oplossing
Omdat u het CIDR-bereik van een bestaand subnet niet kunt bijwerken, moet u gemachtigd zijn om een nieuw subnet te maken om dit probleem op te lossen. Volg vervolgens deze stappen:
Bouw een nieuw subnet opnieuw op met een groter CIDR-bereik dat voldoende is voor operationele doelstellingen.
Maak een nieuw subnet met een nieuw niet-overlappend bereik.
Maak een nieuwe knooppuntgroep in het nieuwe subnet.
Verwijder pods uit de oude knooppuntgroep die zich in het oude subnet bevindt dat wordt vervangen.
Verwijder het oude subnet en de oude knooppuntgroep.
Ik ondervind sporadische uitgaande connectiviteitsfouten vanwege SNAT-poortuitputting
Voor clusters die op relatief grote schaal worden uitgevoerd (meer dan 500 knooppunten), raden we u aan om de NAT-gateway (Managed Network Address Translation) van AKS te gebruiken voor een grotere schaalbaarheid. Azure NAT Gateway biedt maximaal 64.512 uitgaande UDP- en TCP-verkeerstromen per IP-adres en maximaal 16 IP-adressen.
Als u geen beheerde NAT gebruikt, raadpleegt u Problemen met SNAT-uitputting (Source Network Address Translation) en verbindingstime-outs oplossen om problemen met SNAT-poortuitputting te begrijpen en op te lossen.
Ik kan niet omhoog schalen naar 5000 knooppunten met behulp van Azure Portal
Gebruik de Azure CLI om maximaal 5000 knooppunten omhoog te schalen door de volgende stappen uit te voeren:
Maak een minimum aantal knooppuntgroepen in het cluster (omdat de maximale limiet voor knooppuntgroepen 1000 is) door de volgende opdracht uit te voeren:
az aks nodepool add --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Schaal de knooppuntgroepen één voor één omhoog. Stel idealiter vijf minuten slaaptijd in tussen opeenvolgende schaalaanpassingen van 1000. Voer de volgende opdracht uit:
az aks nodepool scale --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Mijn upgrade wordt uitgevoerd, maar het is traag
In de standaardconfiguratie neemt AKS toe tijdens een upgrade door de volgende acties uit te voeren:
- Er wordt één nieuw knooppunt gemaakt.
- Het schalen van de knooppuntgroep buiten het gewenste aantal knooppunten met één knooppunt.
Voor de maximale piekinstellingen betekent een standaardwaarde van één knooppunt dat AKS één nieuw knooppunt maakt voordat de bestaande toepassingen worden leeggemaakt en een knooppunt met een eerdere versie wordt vervangen. Met dit extra knooppunt kan AKS werkbelastingonderbreking minimaliseren.
Wanneer u clusters met veel knooppunten bijwerkt, kan het enkele uren duren voordat het hele cluster wordt bijgewerkt als u de standaardwaarde van max-surge
. U kunt de max-surge
eigenschap per knooppuntgroep aanpassen om een compromis tussen upgradesnelheid en onderbreking van de upgrade mogelijk te maken. Door de maximale piekwaarde te verhogen, kunt u het upgradeproces sneller voltooien. Een grote waarde voor een maximale piek kan echter ook onderbrekingen veroorzaken tijdens het upgradeproces.
Voer de volgende opdracht uit om de maximale piek voor een bestaande knooppuntgroep te verhogen of aan te passen:
az aks nodepool update --resource-group MyResourceGroup --name mynodepool --cluster-name MyManagedCluster --max-surge 5
Het is ook belangrijk om na te gaan hoe uw implementatie-instellingen de voltooiing van de upgrade- of schaalbewerking kunnen vertragen:
- Vm's uit de SKU-serie B-serie worden niet ondersteund door AKS in de systeemknooppuntpool en kunnen tijdens en na updates lage prestaties ervaren.
- Controleer de PDB-resource-instellingen van uw implementatie om ervoor te zorgen dat deze correct zijn voor een geslaagde upgrade. Zie best practices voor AKS-workloads voor meer informatie.
Tip
Als u meer inzicht wilt krijgen in dit gedrag, kunt u foutdetails bekijken op de pagina Activiteitenlogboek in Azure Portal of de resourcelogboeken in uw cluster bekijken.
Mijn upgrade bereikt de quotumlimiet (5.000 cluster)
Zie Regionale vCPU-quota verhogen om dit probleem op te lossen.
Mijn interne service maken op meer dan 750 knooppunten is traag of mislukt vanwege een time-outfout
SLB-updates (Standard Load Balancer) voor back-endpools zijn een bekend knelpunt voor prestaties. We werken aan een nieuwe mogelijkheid waarmee u sneller services en SLB op schaal kunt maken. Als u ons feedback wilt sturen over dit probleem, raadpleegt u De ondersteuning van Azure Kubernetes voor load balancer met een back-endpool op basis van IP.
Oplossing
Het is raadzaam om het cluster omlaag te schalen naar minder dan 750 knooppunten en vervolgens een interne load balancer voor het cluster te maken. Als u een interne load balancer wilt maken, maakt u een LoadBalancer
servicetype en azure-load-balancer-internal
aantekeningen volgens de volgende voorbeeldprocedure.
Stap 1: Een interne load balancer maken
Als u een interne load balancer wilt maken, maakt u een servicemanifest met de naam internal-lb.yaml en dat het LoadBalancer
servicetype en de azure-load-balancer-internal
aantekening bevat, zoals wordt weergegeven in het volgende voorbeeld:
apiVersion: v1
kind: Service
metadata:
name: internal-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: internal-app
Stap 2: De interne load balancer implementeren
Implementeer de interne load balancer met behulp van de kubectl apply
opdracht en geef de naam van uw YAML-manifest op, zoals wordt weergegeven in het volgende voorbeeld:
kubectl apply -f internal-lb.yaml
Nadat uw cluster is gemaakt, kunt u ook een interne load balancer inrichten (volgens deze procedure) en een interne service met gelijke taakverdeling uitvoeren. Hierdoor kunt u meer services toevoegen aan de load balancer op schaal.
Het maken van de SLB-service op schaal duurt uren om uit te voeren
SLB-back-endpoolupdates zijn een bekend knelpunt voor prestaties. We werken aan een nieuwe mogelijkheid waarmee u services met gelijke taakverdeling op schaal kunt uitvoeren met aanzienlijk snellere prestaties voor het maken, bijwerken en verwijderen van bewerkingen. Als u ons uw feedback wilt sturen, raadpleegt u de ondersteuning van Azure Kubernetes voor load balancer met een back-endpool op basis van IP.
Disclaimerinformatie van derden
De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.