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.
Azure Kubernetes Service (AKS) voert rolling upgrades uit om onderbreking van actieve workloads te minimaliseren.
Voor de meeste productieworkloads is AKS Automatic de aanbevolen standaardinstelling, indien van toepassing. AKS Automatic omvat productierijpe standaardinstellingen voor upgradebewerkingen, zoals automatische upgrades van Kubernetes-versies, automatische updates van installatiekopieën van het besturingssysteem (OS) van knooppunten, beheerde bewerkingen voor systeemknooppunten en ingebouwde waarborgen die de handmatige inspanning verminderen. Zie Inleiding tot AKS Automatic voor meer informatie.
In dit artikel wordt uitgelegd wat de AKS-upgrademechanica is en waar AKS Automatic en AKS Standard verschillen.
Vereiste voorwaarden
- Inzicht in best practices voor Kubernetes-upgrades
- Bekendheid met Pod Disruption Budgets (PDBs)
Upgrademodel: AKS Automatic en AKS Standard
De AKS Automatic- en AKS Standard-clustermodi maken gebruik van dezelfde basisprincipes van Kubernetes-upgrades, maar ze verschillen in standaardinstellingen en operationeel eigendom.
| Probleem met upgraden | AKS Automatisch | AKS Standard |
|---|---|---|
| Productiepositie | Aanbevolen standaard voor de meeste productieworkloads, indien van toepassing | Flexibel model met meer handmatige configuratie standaard |
| Kubernetes-minorversie-upgrades | Vooraf geconfigureerd kanaal voor automatische upgrade | Standaard handmatig, met optioneel automatisch kanaal |
| Upgrades van installatiekopieën van knooppuntbesturingssystemen | Vooraf geconfigureerd automatisch kanaal voor OS-images van de node | Standaard handmatig, met optioneel automatisch kanaal |
| Bewerkingen van systeemknooppuntgroepen | Beheerd door AKS | Beheerd door de klant |
| Geplande onderhoudsvensters | Standaard beschikbaar | Optionele configuratie |
| Beheeropties voor workloadverstoringen | Eigendom van de klant, inclusief replicastrategie, gereedheidsgedrag en onderbrekingsbeleid | Eigendom van de klant, inclusief replicastrategie, gereedheidsgedrag en onderbrekingsbeleid |
Note
AKS Automatic vereenvoudigt platformbewerkingen, maar gedeelde verantwoordelijkheid is nog steeds van toepassing. Het beschikbaarheidsontwerp en het uitzettingsbeleid op workloadniveau blijven de verantwoordelijkheid van de klant.
Werking van rolling-upgrades in AKS
AKS werkt knooppuntgroepen bij met behulp van een rollend patroon dat capaciteit behoudt terwijl knooppunten worden vervangen of opnieuw worden hersteld. Dit gedrag is hetzelfde voor alle AKS-clustermodi.
In grote lijnen, AKS:
- Voegt tijdelijke piekcapaciteit toe op basis van upgrade-instellingen.
- Cordons en leegmaken van knooppunten om workloads te verplaatsen.
- Maakt de knooppunten opnieuw aan met de doelversie of vervangt ze ermee.
- Verwijdert de tijdelijke piekcapaciteit na afronding.
Voorbeeld van rolling upgrade
In dit voorbeeld ziet u hoe u een cluster met twee knooppunten bijwerkt van Kubernetes 1.30 naar 1.31 en is maxSurge ingesteld op 1.
Stap 1: Eerste installatie
Het cluster begint met twee knooppunten waarop versie 1.30 wordt uitgevoerd, waarbij elk toepassingspods host.
- Knooppunt 1: Pod A, Pod B
- Knooppunt 2: Pod C, Pod D
- Piekknooppunt: Leeg (met uitzondering van DaemonSets en nieuwe pods)
Stap 2: Cordon en afvoer eerste knooppunt
AKS cordoniert Node 1 om te voorkomen dat nieuwe pods worden gepland en vervolgens bestaande pods draineren.
- Pod A → verwijderd en vervangen op piekknooppunt
- Pod B → verwijderd en vervangen op Node 2
Stap 3: Eerste knooppunt upgraden
Knooppunt 1 wordt hergeïnstalleerd met Kubernetes versie 1.31, terwijl pods op andere knooppunten blijven draaien.
- Knooppunt 1: Bijgewerkt naar v1.31
- Knooppunt 2: Pod B, Pod C, Pod D
- Piekknooppunt: Pod A
Stap 4: Tweede knooppunt afzetten en leeg laten lopen
AKS herhaalt het proces voor Node 2, pods worden verwijderd en de scheduler herdistribueert deze naar de juiste beschikbare knooppunten.
- Pod C, B → verwijderd en vervangen op Node 1
- Pod D → verwijderd en vervangen op piekknooppunt
- Knooppunt 2: Afgegrensd en opnieuw geïmageerd naar v1.31
Stap 5: Piekknooppunt verwijderen
Nadat alle permanente knooppunten zijn bijgewerkt, wordt het piekknooppunt vastgezet, leeggezogen en verwijderd.
- Pod A → verwijderd en vervangen op Node 1
- Pod D → verwijderd en vervangen op Node 2
- Piekknooppunt: verwijderd
Uiteindelijke status
Op alle knooppunten wordt nu Kubernetes versie 1.31 uitgevoerd met pods die zijn gepland in het cluster.
- Node 1 (v1.31): Pod A, Pod C
- Node 2 (v1.31): Pod B, Pod D
Restrictief gedrag van Pod Disruption Budget (PDB)
Als een beperkende PDB verwijdering blokkeert, kan het leegmaken van knooppunten worden vertraagd of voorkomen. AKS kan het Cordon oninbare knooppuntgedrag gebruiken om andere in aanmerking komende knooppunten te blijven upgraden, afhankelijk van het geconfigureerde gedrag. Geblokkeerde knooppunten blijven mogelijk op een oudere versie staan totdat de blokkeringsvoorwaarde is opgelost.
Beperkend PDB-voorbeeld
In dit voorbeeld wordt getoond hoe u een cluster met twee knooppunten bijwerkt van Kubernetes 1.30 naar 1.31, waarbij maxSurge is ingesteld op 2 en een PDB de drainbewerking van het eerste knooppunt blokkeert.
Stap 1: Eerste installatie met beperkende PDB
Het cluster begint met twee knooppunten met versie 1.30, met een PDB die Pod A beschermt tegen verwijdering.
- Knooppunt 1: Pod A (beveiligd door PDB), Pod B
- Knooppunt 2: Pod C, Pod D
- Piekknooppunten: nieuw gemaakte 2 knooppunten
- PDB: Voorkomt verwijderen van pod A
Stap 2: Het eerste knooppunt leegmaken (geblokkeerd)
AKS cordons Node 1, maar kan Pod A niet leegmaken vanwege PDB-beperkingen.
- Knooppunt 1: Afgezet en gemarkeerd als in quarantaine (Pod A vastgelopen)
- Pod B → verwijderd en vervangen op piekknooppunt 1, terwijl piekknooppunt 2 tijdelijk niet wordt gebruikt
- Status: Upgrade van knooppunt 1 geblokkeerd
Stap 3: Doorgaan naar het tweede knooppunt
Met knooppunt 1 in quarantaine blijft AKS knooppunt 2 bijwerken.
- Knooppunt 1: blijft in quarantaine (v1.30)
- Knooppunt 2: Afgesloten en afgetapt
- Pod C → verwijderd en vervangen op piekknooppunt 2
- Pod D → verwijderd en vervangen op piekknooppunt 2
Stap 4: tweede knooppunt upgraden
Knooppunt 2 is met succes opnieuw geïnstalleerd naar Kubernetes versie 1.31.
- Knooppunt 1: Nog steeds in quarantaine geplaatst (v1.30) met Pod A
- Knooppunt 2: bijgewerkt naar v1.31
- Piekknooppunt 1: Pod B
- Piekknooppunt 2: Pod C, Pod D
Stap 5: Het ene piekknooppunt wordt permanent vervangen wanneer een ander knooppunt wordt verwijderd
Omdat knooppunt 1 in quarantaine blijft, wordt Surge Node 1 de permanente vervanger die op v1.31 draait en wordt Surge Node 2 verwijderd.
- Knooppunt 1: In quarantaine (v1.30): handmatige interventie vereist
- Pod C, Pod D → verwijderd uit piekknooppunt 2 en vervangen op knooppunt 2
- Piekknooppunt 1 (v1.31): Pod B (nu permanent)
- Piekknooppunt 2 (v1.31): verwijderd
Uiteindelijke status
De upgrade wordt voltooid met één in quarantaine geplaatst knooppunt waarvoor handmatige tussenkomst is vereist.
- Knooppunt 1: In quarantaine geplaatst (v1.30) met Pod A - De klant moet handmatig oplossen (zie oninbare knooppunten oplossen)
- Node 2 (v1.31): normaal wordt uitgevoerd
- Voormalig piekknooppunt (v1.31): nu permanente vervanging
Belangrijk
Het in quarantaine geplaatste knooppunt (Node 1) blijft de verantwoordelijkheid van de klant om mee om te gaan. U moet een van de volgende dingen doen:
- Pas de PDB aan om verwijdering van Pod A toe te staan.
- Verwijder Pod A handmatig.
- Verwijder het knooppunt en maak het opnieuw nadat de blokkeringsvoorwaarde is opgelost.
Belangrijke overwegingen voor door PDB geblokkeerde upgrades
-
Oninbaar gedrag van knooppunten: ingesteld op
Cordonvoor de knooppuntgroep om dit quarantainegedrag in te schakelen. - Verantwoordelijkheid van de klant: In quarantaine geplaatste knooppunten vereisen handmatig ingrijpen om het probleem op te lossen.
- Clustercapaciteit: het piekknooppunt wordt permanent, mogelijk van invloed op de planning van clustercapaciteit.
- Bewaking: houd in quarantaine geplaatste knooppunten bij via Azure Monitor of kubectl om een tijdige oplossing te garanderen.
Tip
Om het quarantainescenario volledig te voorkomen, kunt u automatisch PDB-beheer gebruiken om implementatiereplica's automatisch op te schalen, zodat aan PDB-beperkingen wordt voldaan voordat de afvoer begint. Hierdoor kan verwijdering zonder blokkering worden voortgezet, waardoor handmatige quarantaineoplossing niet meer nodig is.
Blue-Green knooppuntgroepupgrades (handmatig beheer)
Blue-Green upgrades bieden een meer gecontroleerde upgradebenadering door handmatig een volledige set nieuwe knooppuntgroepen te maken voordat workloads worden gemigreerd. Deze handmatige benadering biedt u volledige controle over het upgradeproces en de timing.
Zie Blue-Green-upgrades van knooppuntpools in AKS voor meer informatie.
Wanneer gebruikt u Blue-Green upgrades
Handmatige Blue-Green knooppuntpoolupgrades zijn een geavanceerde strategie voor gespecialiseerde vereisten, zoals expliciete migratiecontrolepunten, aangepaste validatiepoorten of strak beheerde cutovers.
Gebruik handmatige Blue-Green wanneer u het volgende nodig hebt:
- Operatorgestuurde migratiefasen.
- Aangepaste validatie- en acceptatiecriteria voordat ze worden doorgevoerd.
- Expliciete terugdraaiprocedure gekoppeld aan interne runbooks.
Voor de meeste productieworkloads, indien van toepassing, is het automatische standaardupgradegedrag van AKS het voorkeursstartpunt en is handmatige Blue-Green doorgaans gereserveerd voor uitzonderlijke gevallen.
Belangrijke concepten
- Blauwe knooppuntgroep: uw bestaande knooppuntgroep waarop de huidige Kubernetes-versie wordt uitgevoerd.
- Groene knooppuntgroep: nieuwe knooppuntgroep die u maakt met de kubernetes-doelversie.
- Handmatig beheer: u beheert alle aspecten van het migratieproces.
- Validatiecontrolepunten: u bepaalt wanneer u wilt doorgaan, onderbreken of terugdraaien.
Voordelen van Blue-Green upgrades
- Volledig beheer: u bepaalt precies wanneer elke stap plaatsvindt.
- Aangepaste validatie: Implementeer uw eigen validatiecriteria en -timing.
- Geleidelijke migratie: werkbelastingen verplaatsen naar uw voorkeurstempo.
- Eenvoudig terugdraaien: oorspronkelijke knooppunten blijven beschikbaar totdat u ze verwijdert.
Belangrijke overwegingen voor Blue-Green upgrades
- Handmatige inspanning: vereist actief beheer tijdens het proces.
- Quotumvereisten: vereist 2x de knooppuntcapaciteit tijdens de upgrade.
- Planning: documenteer uw validatiecriteria en terugdraaiprocedures.
Voorbeeld van handmatig Blue-Green upgradeproces
In dit voorbeeld ziet u hoe u handmatig een cluster met twee knooppunten bijwerkt van Kubernetes 1.30 naar 1.31 met behulp van Blue-Green-implementatie.
Stap 1: Groene knooppuntgroep maken
U begint met het handmatig maken van een nieuwe knooppuntgroep met de kubernetes-doelversie naast uw bestaande knooppuntgroep.
- Blauwe knooppuntgroep (v1.30): Pod A, Pod B, Pod C, Pod D (bestaand)
- Groene knooppuntgroep (v1.31): Leeg (handmatig gemaakt door u)
-
Uw actie:
az aks nodepool addmet nieuwe Kubernetes-versie
Stap 2: Knopen blauw maken en handmatig afzetten
Cordon de blauwe knooppunten om te voorkomen dat nieuwe pods worden gepland terwijl bestaande pods actief blijven.
-
Uw actie:
kubectl cordonop elk blauw knooppunt - Blauwe knooppunten: Geïsoleerd, geen nieuwe pods gepland
- Groene knooppunten: gereed voor het ontvangen van workloads
Stap 3: Blauwe knooppunten handmatig leegmaken (gecontroleerd tempo)
U bepaalt het migratietempo door knooppunten één voor één of in batches handmatig leeg te maken.
-
Uw actie:
kubectl drainop geselecteerde blauwe knooppunten - Migratie van pods: Pods worden automatisch opnieuw gepland naar groene knooppunten
- Validatie: Verifieer workloads op groene knooppunten voordat u doorgaat
Stap 4: Valideren en beslissen
Na het migreren van workloads valideert u de prestaties van toepassingen op groene knooppunten.
Tijdens deze fase kunt u het volgende doen:
- Controleren: Metrische gegevens en logboeken van toepassingen controleren
- Test: Validatietests uitvoeren op groene knooppuntgroep
- Beslissen: Committeren aan groen of terugdraaien naar blauw
Stap 5: Doorvoeren of terugdraaien
Op basis van uw validatie voltooit u de upgrade handmatig of rolt u terug.
Optie A - Toepassen (succes):
-
Uw actie: Blauwe knooppuntgroep verwijderen met behulp van
az aks nodepool delete - Resultaat: Groene knooppuntgroep wordt primair
Optie B - Terugdraaien (gedetecteerde problemen):
-
Uw actie: Blauwe knooppunten ongedaan maken met behulp van
kubectl uncordon, groene knooppunten leegmaken met behulp vankubectl drain, en groene knooppuntgroep verwijderen met behulp vanaz aks nodepool delete - Resultaat: Workloads worden geretourneerd naar blauwe knooppunten
Productieoverwegingen voor upgradeplanning
-
Surge (
maxSurge)-configuratie: Hiermee wordt het aantal surgeknooppunten bepaald dat tijdens upgrades wordt aangemaakt. Hogere waarden versnellen upgrades, maar verbruiken meer resources. - Budgetten voor podonderbrekingen (PDBs):configureer PDBs om de beschikbaarheid van toepassingen tijdens het upgradeproces te garanderen.
- Upgrades van knooppuntgroepen: elke knooppuntgroep wordt onafhankelijk bijgewerkt. Plan uw upgradestrategie dienovereenkomstig.
- Capaciteit en quotum: valideer tijdelijke en gestage capaciteitsvereisten voordat upgradevensters worden uitgevoerd.
- Bewaking en waarschuwingen: bewaking en waarschuwingen instellen voordat de upgrade wordt gestart.
In AKS Automatic worden verschillende upgradeopties op platformniveau vooraf geconfigureerd voor productiegereedheid. In AKS Standard maken teams deze keuzes doorgaans expliciet.