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.
Dit artikel bevat een technische basis voor AKS-clusterupgrades (Azure Kubernetes Service) door upgradeopties en algemene scenario's te behandelen. Gebruik de navigatiepaden op basis van scenario's aan het einde van dit artikel voor uitgebreide richtlijnen die zijn afgestemd op uw behoeften.
Wat in dit artikel wordt behandeld
Deze technische naslaginformatie biedt uitgebreide basisprincipes van AKS-upgrades voor:
- Handmatige versus geautomatiseerde upgradeopties en wanneer u deze wilt gebruiken.
- Algemene upgradescenario's met specifieke aanbevelingen.
- Optimalisatietechnieken voor prestaties en minimale onderbrekingen.
- Probleemoplossingsgids voor capaciteits-, afvoer- en timingproblemen.
- Validatieprocessen en controles vóór de upgrade.
Deze hub is het beste om u te helpen bij het begrijpen van upgrademechanica, het oplossen van problemen, het optimaliseren van upgrade-instellingen en meer informatie over technische implementatie.
Zie de volgende verwante artikelen voor meer informatie:
- Als u uw AKS-productieclusters wilt upgraden, raadpleegt u de strategieën voor de productie-upgrade van AKS.
- Zie Stateful workload upgrade patronen om upgradepatronen voor AKS-clusters te verkrijgen voor AKS-clusters die stateful workloads hebben.
- Als u de scenariohub wilt gebruiken om u te helpen de juiste AKS-upgradebenadering te kiezen, raadpleegt u AKS-upgradescenario's: Kies uw pad.
Als u geen ervaring hebt met AKS-upgrades, begint u met de hub voor upgradescenario's voor begeleide, op scenario's gebaseerde hulp.
Snelle navigatie
| Uw situatie | Aanbevolen pad |
|---|---|
| Productiecluster heeft een upgrade nodig | Strategieën voor productie-upgrades |
| Database/statusgerichte workloads | Stateful workloadpatronen |
| Eerste upgrade of basiscluster | Upgrade van AKS-basiscluster |
| Meerdere omgevingen of vloot | Hub voor upgradescenario's |
| Knooppuntgroepen of Windows-knooppunten | Upgrades van knooppuntgroepen |
| Alleen specifieke knooppuntgroep | Upgrade van pool met één knooppunt |
Upgrade opties
Handmatige upgrades uitvoeren
Met handmatige upgrades kunt u bepalen wanneer uw cluster wordt bijgewerkt naar een nieuwe Kubernetes-versie. Deze upgrades zijn handig voor het testen of gericht zijn op een specifieke versie.
- Een AKS-cluster upgraden
- Meerdere AKS-clusters upgraden via Azure Kubernetes Fleet Manager
- Knooppuntimage upgraden
- Upgrade van node-stijging aanpassen
- Updates van het besturingssysteem van het procesknooppunt
Automatische upgrades configureren
Automatische upgrades houden uw cluster op een ondersteunde versie en up-to-date. Gebruik deze upgrades als u uw instellingen wilt automatiseren:
- Automatisch een upgrade uitvoeren van een AKS-cluster
- Meerdere AKS-clusters automatisch upgraden via Azure Kubernetes Fleet Manager
- Gepland onderhoud gebruiken om upgrades te plannen en te beheren
- AKS-clusterupgrades automatisch stoppen bij brekende wijzigingen in API's (preview)
- Installatiekopieën van AKS-clusterknooppunten automatisch upgraden
- Beveiligingsupdates automatisch toepassen op AKS-knooppunten met behulp van GitHub Actions
Speciale overwegingen voor knooppuntgroepen die meerdere beschikbaarheidszones omvatten
AKS maakt gebruik van best-effort zonebalancering in knooppuntgroepen. Tijdens een upgrade-piek zijn de zones voor piekknooppunten in virtuele-machineschaalsets van tevoren onbekend, wat tijdelijk een niet-evenwichtige zoneconfiguratie kan veroorzaken. AKS verwijdert piekknooppunten na de upgrade en herstelt de oorspronkelijke zonebalans.
Als u zones evenwichtig wilt houden, stelt u een piek in op een veelvoud van drie knooppunten. Permanente volumeclaims die lokaal redundante opslagschijven van Azure gebruiken, zijn zonegebonden en kunnen downtime veroorzaken als piekknooppunten zich in een andere zone bevinden. Gebruik een budget voor podonderbreking (PDB) om hoge beschikbaarheid te behouden tijdens afvoeren.
Het optimaliseren van upgrades om de prestaties te verbeteren en onderbrekingen te minimaliseren
Combineer gepland onderhoudsvenster, maximale piek, PDB, time-out voor knooppuntafvoer en knooppuntweektijd om de kans op geslaagde upgrades met weinig verstoring te vergroten.
- Venster Gepland onderhoud: Plan automatische upgrade tijdens perioden met weinig verkeer. We raden ten minste vier uur aan.
- Maximale piek: hogere waarden zorgen voor snellere upgrades, maar kunnen werkbelastingen verstoren. We raden 33% aan voor productie.
- Maximaal niet beschikbaar: gebruik wanneer de capaciteit beperkt is.
- Budget voor podonderbreking: ingesteld om onderbrekingen van pods tijdens upgrades te beperken. Valideer uw dienst.
- Knooppunt-afvoertime-out: Configureer de wachttijd voor het verwijderen van pods. De standaardwaarde is 30 minuten.
- Nabijheidstijd van knooppunt: Verspreid upgrades om downtime te minimaliseren. De standaardwaarde is 0 minuten.
| Upgrade-instellingen | Hoe extra knooppunten worden gebruikt | Verwacht gedrag |
|---|---|---|
maxSurge=5, maxUnavailable=0 |
5 piekknooppunten | Er worden vijf knooppunten ingezet voor een upgradeproces. |
maxSurge=5, maxUnavailable=0 |
0-4 piekknooppunten | Upgrade mislukt vanwege onvoldoende piekknooppunten. |
maxSurge=0, maxUnavailable=5 |
N/A | Vijf bestaande knooppunten worden leeggezogen voor de upgrade. |
Opmerking
Voordat u een upgrade uitvoert, controleert u op wijzigingen die fouten veroorzaken in de API en bekijkt u de opmerkingen bij de AKS-release om onderbrekingen te voorkomen.
Validaties die worden gebruikt in het upgradeproces
AKS voert pre-upgradevalidaties uit om de clusterstatus te garanderen:
- Breken wijzigingen in de API: Detecteert verouderde API's.
- Upgradeversie van Kubernetes: Zorgt voor een geldig upgradepad.
-
PDB-configuratie: Controleert op onjuist geconfigureerde PDB's (bijvoorbeeld
maxUnavailable=0). - Quotum: Bevestigt voldoende quotum voor piekknooppunten.
- Subnet: Controleert voldoende IP-adressen.
- Certificaten/service-principals: Detecteert verlopen inloggegevens.
Deze controles helpen bij het minimaliseren van upgradefouten en bieden vroegtijdig inzicht in problemen.
Algemene upgradescenario's en aanbevelingen
Scenario 1: Capaciteitsbeperkingen
Als uw cluster wordt beperkt door de productlaag of regionale capaciteit, kunnen upgrades mislukken wanneer piekknooppunten niet kunnen worden ingericht. Deze situatie is gebruikelijk bij gespecialiseerde productlagen (zoals GPU-knooppunten) of in regio's met beperkte resources. Fouten zoals SKUNotAvailable, AllocationFailedof OverconstrainedAllocationRequest kunnen optreden als maxSurge deze te hoog is ingesteld voor de beschikbare capaciteit.
Aanbevelingen om te voorkomen of op te lossen
- Gebruik
maxUnavailableom een upgrade uit te voeren met behulp van bestaande knooppunten in plaats van nieuwe toe te voegen. Zie Aanpassen van niet-beschikbare knooppunten tijdens de upgrade voor meer informatie. - Verlaag
maxSurgeom extra capaciteitsbehoeften te verminderen. Voor meer informatie, zie Nodepiekupgrade aanpassen. - Gebruik voor alleen beveiligingsupdates installatiekopies die geen piekknooppunten vereisen. Zie Beveiligingsupdates en kernelupdates toepassen op Linux-knooppunten in Azure Kubernetes Service voor meer informatie.
Scenario 2: Knooppuntleegmaakfouten en PDBs
Voor upgrades moeten knooppunten worden leeggemaakt (pods worden ontruimd). Afvoerprocessen kunnen mislukken wanneer pods langzaam worden beëindigd of strikte Pod-onderbrekingsbudgetten (PDBs) het verwijderen van pods blokkeren.
Voorbeeldfout:
Code: UpgradeFailed
Message: Drain node ... failed when evicting pod ... Cannot evict pod as it would violate the pod's disruption budget.
Optie 1: Upgrade forceren (PDB omzeilen)
Waarschuwing
Geforceerde upgrade omzeilt PDB-beperkingen (Pod Disruption Budget) en kan serviceonderbreking veroorzaken door alle pods tegelijkertijd leeg te maken. Voordat u deze optie gebruikt, probeert u eerst onjuiste PDB-configuraties op te lossen (controleer de PDB minAvailable/maxUnavailable-instellingen, zorg ervoor dat er voldoende podreplica's zijn, controleer of PDBs niet alle verwijderingen blokkeren).
Gebruik alleen geforceerde upgrade wanneer PDBs essentiële upgrades voorkomen en niet kunnen worden opgelost. Hierdoor worden PDB-beveiligingen overschreven en is de service mogelijk niet beschikbaar tijdens de upgrade.
Eisen: Azure CLI 2.79.0+ of AKS API versie 2025-09-01+
az aks upgrade \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--kubernetes-version $KUBERNETES_VERSION \
--enable-force-upgrade \
--upgrade-override-until 2023-10-01T13:00:00Z
Opmerking
- De
upgrade-override-untilparameter definieert wanneer de validatie-bypass eindigt (moet een toekomstige datum/tijd zijn) - Als dit niet is opgegeven, wordt het venster standaard ingesteld op 3 dagen vanaf de huidige tijd
- De 'Z' geeft utc/GMT-tijdzone aan
Waarschuwing
Wanneer geforceerde upgrade is ingeschakeld, heeft deze voorrang op alle andere drainconfiguraties. De instellingen voor het gedrag van ondraineerbare knooppunten (optie 2) worden niet toegepast wanneer een geforceerde upgrade actief is.
Optie 2: niet-drainbare knooppunten verwerken (respecteer PDB)
Gebruik deze conservatieve benadering om PDBs te respecteren en upgradefouten te voorkomen.
Configureer oninbaar knooppuntgedrag:
az aks nodepool update \
--resource-group <resource-group-name> \
--cluster-name <cluster-name> \
--name <node-pool-name> \
--undrainable-node-behavior Cordon \
--max-blocked-nodes 2 \
--drain-timeout 30
Gedragsopties:
- Planning (standaard): Verwijdert geblokkeerd knooppunt en piekvervanging
-
Cordon (aanbevolen): Cordons-knooppunt en labelt het als
kubernetes.azure.com/upgrade-status=Quarantined
Maximaal aantal geblokkeerde knooppunten (preview):
- Hiermee specificeert u hoeveel knooppunten die niet kunnen worden gedraineerd, worden getolereerd.
- Moet
undrainable-node-behaviorworden ingesteld - Wordt standaard ingesteld op de waarde
maxSurge(meestal 10%) als deze niet is opgegeven.
Vereisten voor maximaal geblokkeerde knooppunten
De Azure CLI-extensie
aks-previewversie 18.0.0b9 of hoger is vereist voor het gebruik van de functie maximaal geblokkeerde knooppunten.# Install or update the aks-preview extension az extension add --name aks-preview az extension update --name aks-preview
Voorbeeldconfiguratie met maximaal geblokkeerde knooppunten
az aks nodepool update \
--cluster-name jizenMC1 \
--name nodepool1 \
--resource-group jizenTestMaxBlockedNodesRG \
--max-surge 1 \
--undrainable-node-behavior Cordon \
--max-blocked-nodes 2 \
--drain-timeout 5
Aanbevelingen om afvoerfouten te voorkomen
- Instellen
maxUnavailablein PDBs om ten minste één pod-verwijdering toe te staan - Podreplica's verhogen om te voldoen aan de vereisten van het storingbudget
- Breid de time-out van de afvoer uit als workloads meer tijd nodig hebben. (De standaardwaarde is 30 minuten.)
- Test PDBs in de stagingomgeving, bewaak upgrade-events en gebruik blue-green deployments voor kritieke workloads. Zie Blauwgroene implementatie van AKS-clusters voor meer informatie.
Onleegbare knooppunten verifiëren
De geblokkeerde knooppunten zijn niet ingepland voor pods en gemarkeerd met het label
"kubernetes.azure.com/upgrade-status: Quarantined".Controleer de labels van geblokkeerde knooppunten wanneer er een drainknooppuntstoring is tijdens de upgrade.
kubectl get nodes --show-labels=true
Oninbare knooppunten oplossen
Verwijder de verantwoordelijke PDB:
kubectl delete pdb <pdb-name>Verwijder het
kubernetes.azure.com/upgrade-status: Quarantinedlabel:kubectl label nodes <node-name> <label-name>Verwijder eventueel het geblokkeerde knooppunt:
az aks nodepool delete-machines --cluster-name <cluster-name> --machine-names <machine-name> --name <node-pool-name> --resource-group <resource-group-name>Nadat u deze stap hebt voltooid, kunt u de clusterstatus afstemmen door een updatebewerking uit te voeren zonder de optionele velden zoals beschreven in az aks. U kunt de knooppuntgroep ook schalen naar hetzelfde aantal knooppunten als het aantal bijgewerkte knooppunten. Deze actie zorgt ervoor dat de knooppuntgroep de beoogde oorspronkelijke grootte krijgt. AKS geeft prioriteit aan het verwijderen van de geblokkeerde knooppunten. Met deze opdracht wordt ook de inrichtingsstatus van het cluster hersteld naar
Succeeded. In het volgende voorbeeld2is het totale aantal bijgewerkte knooppunten.# Update the cluster to restore the provisioning status az aks update --resource-group <resource-group-name> --name <cluster-name> # Scale the node pool to restore the original size az aks nodepool scale --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --node-count 2
Scenario 3: Trage upgrades
Conservatieve instellingen of problemen op knooppuntniveau kunnen upgrades vertragen, wat van invloed is op uw vermogen om op de hoogte te blijven van patches en verbeteringen.
Veelvoorkomende oorzaken van trage upgrades zijn:
- Laag
maxSurgeofmaxUnavailablewaarden (beperkt parallellisme). - Hoge inweektijden (lange wachttijden tussen knooppuntupgrades).
- Leegloopfouten (zie Knooppuntafvoerfouten).
Aanbevelingen om te voorkomen of op te lossen
- Gebruik
maxSurge=33%,maxUnavailable=1voor productie. - Gebruik
maxSurge=50%,maxUnavailable=2voor dev/test. - Gebruik de beveiligingspatch voor het besturingssysteem voor snelle, gerichte patches (vermijd volledige knooppunten die opnieuw worden gebruikt).
- Schakel deze optie
undrainableNodeBehaviorin om upgradeblokkeringen te voorkomen.
Scenario 4: IP-uitputting
Piekknooppunten vereisen meer IP-adressen. Als het subnet bijna zijn capaciteit bereikt, kan het toewijzen van knooppunten mislukken (bijvoorbeeld Error: SubnetIsFull). Dit scenario is gebruikelijk met Azure Container Networking Interface, hoog maxPods of een groot aantal knooppunten.
Aanbevelingen om te voorkomen of op te lossen
Zorg ervoor dat uw subnet voldoende IP-adressen heeft voor alle knooppunten, piekknooppunten en pods. De formule is
Total IPs = (Number of nodes + maxSurge) * (1 + maxPods).Maak ongebruikte IP-adressen vrij of vouw het subnet uit (bijvoorbeeld van /24 tot /22).
Lager
maxSurgeals subnetuitbreiding niet mogelijk is:az aks nodepool update \ --resource-group <resource-group-name> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --max-surge 10%IP-gebruik bewaken met Azure Monitor of aangepaste waarschuwingen.
Verminder
maxPodsper knooppunt, schoon zwevende load balancer-IP's op en plan de grootte van subnetten voor grootschalige clusters.
Veelgestelde vragen
Kan ik opensource-hulpprogramma's gebruiken voor validatie?
Ja. Veel opensource-hulpprogramma's kunnen goed worden geïntegreerd met AKS-upgradeprocessen:
- kube-no-trouble (kubent): scant op afgeschafte API's vóór upgrades.
- Trivy: Beveiligingsscans voor containerinstallatiekopieën en Kubernetes-configuraties.
- Sonobuoy: Kubernetes conformance testen van en clustervalidatie.
- kube-bench: Beveiligingsbenchmarkcontroles volgens de normen van het Centrum voor Internetbeveiliging.
- Polaris: Validatie van aanbevolen procedures voor Kubernetes.
- kubectl-neat: Kubernetes-manifesten opschonen voor validatie.
Hoe valideer ik API-compatibiliteit voordat ik een upgrade uitvoert?
Verouderingscontroles uitvoeren met behulp van hulpprogramma's zoals kubent:
# Install and run API deprecation scanner
kubectl apply -f https://github.com/doitintl/kube-no-trouble/releases/latest/download/knt-full.yaml
# Check for deprecated APIs in your cluster
kubectl run knt --image=doitintl/knt:latest --rm -it --restart=Never -- \
-c /kubeconfig -o json > api-deprecation-report.json
# Review findings
cat api-deprecation-report.json | jq '.[] | select(.deprecated==true)'
Wat maakt AKS-upgrades anders dan andere Kubernetes-platforms?
AKS biedt verschillende unieke voordelen:
- Systeemeigen Azure-integratie met Azure Traffic Manager, Azure Load Balancer en netwerken.
- Azure Kubernetes Fleet Manager voor gecoördineerde upgrades voor meerdere clusters.
- Automatische patchen van knooppunt afbeeldingen zonder handmatig knooppuntbeheer.
- Ingebouwde validatie voor quota, netwerken en referenties.
- Azure-ondersteuning voor problemen met betrekking tot upgrades.
Kies uw upgradepad
Dit artikel heeft u een technische basis gegeven. Selecteer nu uw pad op basis van scenario's.
Klaar om uit te voeren?
| Als u... | Ga vervolgens naar... |
|---|---|
| Productieomgeving | Strategieën voor productie-upgrades: Geteste patronen voor upgrades zonder downtime |
| Databases of stateful apps | Stateful workload patronen: Veilige upgrade patronen voor gegevenspersistentie |
| Meerdere omgevingen | Hub voor upgradescenario's: Beslissingsstructuur voor complexe instellingen |
| Basiscluster | Een AKS-cluster upgraden: Stapsgewijze clusterupgrade |
Nog steeds beslissen?
Gebruik de hub voor upgradescenario's voor een begeleide beslissingsstructuur die rekening houdt met uw:
- Tolerantie voor stilstandtijd
- Omgevingscomplexiteit
- Risicoprofiel
- Tijdlijnbeperkingen
Volgende taken
- Bekijk de AKS-patch- en upgraderichtlijnen voor best practices en planningstips voordat u een upgrade start.
- Controleer altijd op wijzigingen die fouten veroorzaken in de API en valideer de compatibiliteit van uw workload met de kubernetes-doelversie.
- Test upgrade-instellingen (zoals
maxSurge,maxUnavailableen PDBs) in een faseringsomgeving om productierisico's te minimaliseren. - Bewaak de upgrade-gebeurtenissen en clusterstatus gedurende het hele proces.