Een AKS-cluster (Azure Kubernetes Service) upgraden
Een deel van de levenscyclus van het AKS-cluster omvat het uitvoeren van periodieke upgrades naar de nieuwste Kubernetes-versie. Het is belangrijk dat u de nieuwste beveiligingsreleases toe passen of upgradet om de nieuwste functies te krijgen. In dit artikel wordt beschreven hoe u de hoofdonderdelen of één standaardknooppuntgroep in een AKS-cluster bij kunt upgraden.
Zie Een knooppuntgroep upgraden in AKS voor AKS-clusters die gebruikmaken van meerdere knooppuntgroepen of Windows Server-knooppunten.
Voordat u begint
Voor dit artikel moet u Azure CLI versie 2.0.65 of hoger uitvoeren. Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.
Waarschuwing
Een upgrade van een AKS-cluster activeert een cordon en drain van uw knooppunten. Als er een laag rekenquotum beschikbaar is, kan de upgrade mislukken. Zie Quota verhogen voor meer informatie
Controleren op beschikbare AKS-clusterupgrades
Als u wilt controleren welke Kubernetes-releases beschikbaar zijn voor uw cluster, gebruikt u de opdracht az aks get-upgrades. In het volgende voorbeeld wordt gecontroleerd op beschikbare upgrades naar myAKSCluster in myResourceGroup:
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster --output table
Notitie
Wanneer u een ondersteund AKS-cluster upgradet, kunnen secundaire Kubernetes-versies niet worden overgeslagen. Alle upgrades moeten opeenvolgend worden uitgevoerd op hoofdversienummer. Upgrades tussen 1.14.x -> 1.15.x of 1.15.x -> 1.16.x zijn bijvoorbeeld toegestaan, maar 1.14.x -> 1.16.x is niet toegestaan.
Het overslaan van meerdere versies kan alleen worden uitgevoerd wanneer u een upgrade van een niet-ondersteunde versie naar een ondersteunde versie hebt uitgevoerd. Een upgrade van een niet-ondersteunde 1.10.x --> een ondersteunde 1.15.x kan bijvoorbeeld worden voltooid.
In de volgende voorbeelduitvoer ziet u dat het cluster kan worden bijgewerkt naar versie 1.19.1 en 1.19.3:
Name ResourceGroup MasterVersion Upgrades
------- --------------- --------------- --------------
default myResourceGroup 1.18.10 1.19.1, 1.19.3
Als er geen upgrade beschikbaar is, wordt het volgende bericht weergegeven:
ERROR: Table output unavailable. Use the --query option to specify an appropriate query. Use --debug for more info.
Upgrade van pieken van knooppunt aanpassen
Belangrijk
Voor knooppuntpieken is een abonnementsquotum vereist voor het aangevraagde maximum aantal pieken voor elke upgradebewerking. Zo heeft een cluster met 5 knooppuntgroepen, elk met een telling van 4 knooppunten, in totaal 20 knooppunten. Als elke knooppuntgroep een maximale piekwaarde van 50% heeft, zijn extra reken- en IP-quota van 10 knooppunten (2 knooppunten * 5 pools) vereist om de upgrade te voltooien.
Als u Azure CNI, controleert u of er ip-adressen beschikbaar zijn in het subnet om te voldoen aan de IP-vereisten van Azure CNI.
AKS configureert standaard upgrades om pieken te maken met één extra knooppunt. Met een standaardwaarde van één voor de instellingen voor maximale pieken kan AKS workloadonderbrekingen minimaliseren door een extra knooppunt te maken vóór de cordon/drain van bestaande toepassingen ter vervanging van een ouder knooppunt met versie. De maximale piekwaarde kan per knooppuntgroep worden aangepast om een afweging te maken tussen upgradesnelheid en upgradeonderbreking. Door de maximale piekwaarde te verhogen, wordt het upgradeproces sneller voltooid, maar het instellen van een grote waarde voor de maximale piek kan onderbrekingen veroorzaken tijdens het upgradeproces.
Een maximale piekwaarde van 100% biedt bijvoorbeeld het snelst mogelijke upgradeproces (het aantal knooppunten verdubbeld), maar zorgt er ook voor dat alle knooppunten in de knooppuntgroep tegelijkertijd worden leeggestroomd. Mogelijk wilt u een hogere waarde zoals deze gebruiken voor testomgevingen. Voor productie-knooppuntgroepen wordt een max_surge instelling van 33% aanbevolen.
AKS accepteert zowel gehele getallen als een percentagewaarde voor de maximale piek. Een geheel getal, zoals '5', geeft aan dat er vijf extra knooppunten moeten worden pieken. Een waarde van '50%' geeft een piekwaarde aan van de helft van het huidige aantal knooppunt in de pool. Het maximum piek percentage kan minimaal 1% en maximaal 100% zijn. Een procentwaarde wordt naar boven afgerond op het dichtstbijzijnde aantal knooppunt. Als de maximum piekwaarde lager is dan het huidige aantal knooppunt op het moment van de upgrade, wordt het huidige aantal knooppunt gebruikt voor de maximale piekwaarde.
Tijdens een upgrade kan de maximale piekwaarde minimaal 1 zijn en een maximumwaarde die gelijk is aan het aantal knooppunten in uw knooppuntgroep. U kunt grotere waarden instellen, maar het maximum aantal knooppunten dat wordt gebruikt voor de maximale piek is niet hoger dan het aantal knooppunten in de pool op het moment van de upgrade.
Belangrijk
De instelling voor het maximum aantal pieken in een knooppuntgroep is permanent. Voor volgende Kubernetes-upgrades of upgrades van knooppuntversies wordt deze instelling gebruikt. U kunt de maximale piekwaarde voor uw knooppuntgroepen op elk moment wijzigen. Voor productie-knooppuntgroepen wordt een maximale piekinstelling van 33% aanbevolen.
Gebruik de volgende opdrachten om maximale piekwaarden in te stellen voor nieuwe of bestaande knooppuntgroepen.
# Set max surge for a new node pool
az aks nodepool add -n mynodepool -g MyResourceGroup --cluster-name MyManagedCluster --max-surge 33%
# Update max surge for an existing node pool
az aks nodepool update -n mynodepool -g MyResourceGroup --cluster-name MyManagedCluster --max-surge 5
Een AKS-cluster upgraden
Gebruik de opdracht az aks upgrade om een upgrade uit te voeren met een lijst met beschikbare versies voor uw AKS-cluster. Tijdens het upgradeproces gaat AKS het volgende doen:
- voeg een nieuw bufferknooppunt (of zoveel knooppunten als geconfigureerd in de maximalepiek) toe aan het cluster met de opgegeven Kubernetes-versie.
- een van de oude knooppunten aan- en verwijderen om onderbrekingen van lopende toepassingen te minimaliseren (als u de maximale piek gebruikt, worden er net zoveel knooppunten aan- en verwijderd op hetzelfde moment als het aantal bufferknooppunten dat is opgegeven).
- Wanneer het oude knooppunt volledig leeg is, wordt er een nieuwe versie van gemaakt en wordt het het buffer-knooppunt voor het volgende knooppunt dat moet worden bijgewerkt.
- Dit proces wordt herhaald totdat alle knooppunten in het cluster zijn bijgewerkt.
- Aan het einde van het proces wordt het laatste buffer-knooppunt verwijderd, met behoud van het bestaande aantal agent-knooppunt en zone-saldo.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version KUBERNETES_VERSION
Het duurt een paar minuten om het cluster bij te upgraden, afhankelijk van hoeveel knooppunten u hebt.
Belangrijk
Zorg ervoor dat een (PDB) toestaat dat ten minste 1 podreplica tegelijk wordt verplaatst, anders mislukt de bewerking voor het PodDisruptionBudgets leeglaten/leeglaten.
Als de bewerking voor het leeglaten mislukt, mislukt de upgradebewerking zonder ontwerp om ervoor te zorgen dat de toepassingen niet worden onderbroken. Corrigeert wat de bewerking heeft veroorzaakt (onjuiste PDF's, onvoldoende quotum, bijvoorbeeld ) en probeer de bewerking opnieuw.
Gebruik de opdracht az aks show om te controleren of de upgrade is geslaagd:
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
In de volgende voorbeelduitvoer ziet u dat het cluster nu 1.18.10 wordt uitgevoerd:
Name Location ResourceGroup KubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------- ----------------------------------------------
myAKSCluster eastus myResourceGroup 1.18.10 Succeeded myakscluster-dns-379cbbb9.hcp.eastus.azmk8s.io
Kanaal voor automatisch upgraden instellen
Naast het handmatig bijwerken van een cluster, kunt u een kanaal voor automatische upgrade instellen op uw cluster. De volgende upgradekanalen zijn beschikbaar:
| Kanaal | Actie | Voorbeeld |
|---|---|---|
none |
schakelt automatische upgrades uit en behoudt het cluster de huidige versie van Kubernetes | Standaardinstelling als deze ongewijzigd blijft |
patch |
upgrade het cluster automatisch naar de meest recente ondersteunde patchversie wanneer deze beschikbaar komt terwijl de secundaire versie hetzelfde blijft. | Als op een cluster bijvoorbeeld versie 1.17.7 en versies 1.17.9, 1.18.4, 1.18.6 en 1.19.1 beschikbaar zijn, wordt uw cluster bijgewerkt naar 1.17.9 |
stable |
upgrade het cluster automatisch naar de meest recente ondersteunde patchre release op secundaire versie N-1, waarbij N de meest recente ondersteunde secundaire versie is. | Als op een cluster bijvoorbeeld versie 1.17.7 en versies 1.17.9, 1.18.4, 1.18.6 en 1.19.1 beschikbaar zijn, wordt uw cluster bijgewerkt naar 1.18.6. |
rapid |
upgrade het cluster automatisch naar de nieuwste ondersteunde patchrelade op de meest recente ondersteunde secundaire versie. | In gevallen waarin het cluster een versie van Kubernetes heeft met een secundaire N-2-versie waarbij N de meest recente ondersteunde secundaire versie is, wordt het cluster eerst geupgraded naar de nieuwste ondersteunde patchversie op een secundaire versie van N-1. Als op een cluster bijvoorbeeld versie 1.17.7 en versies 1.17.9, 1.18.4, 1.18.6 en 1.19.1 beschikbaar zijn, wordt uw cluster eerst bijgewerkt naar 1.18.6 en vervolgens bijgewerkt naar 1.19.1. |
node-image |
de knooppuntafbeelding automatisch upgraden naar de nieuwste versie die beschikbaar is. | Microsoft biedt regelmatig patches en nieuwe afbeeldingen voor knooppunten van de afbeelding (meestal wekelijks), maar uw knooppunten die worden uitgevoerd, krijgen de nieuwe afbeeldingen niet, tenzij u een upgrade voor de knooppuntafbeeldingen hebt uitgevoerd. Als u het kanaal node-image inschakelen, worden uw knooppuntafbeeldingen automatisch bijgewerkt wanneer er een nieuwe versie beschikbaar is. |
Notitie
Het cluster werkt alleen automatisch bij naar GA-versies van Kubernetes en wordt niet bijgewerkt naar preview-versies.
Het automatisch upgraden van een cluster volgt hetzelfde proces als het handmatig upgraden van een cluster. Zie Een AKS-cluster upgradenvoor meer informatie.
Als u het kanaal voor automatische upgrade wilt instellen bij het maken van een cluster, gebruikt u de parameter auto-upgrade-channel, vergelijkbaar met het volgende voorbeeld.
az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys
Als u het kanaal voor automatische upgrade wilt instellen op een bestaand cluster, moet u de parameter auto-upgrade-channel bijwerken, vergelijkbaar met het volgende voorbeeld.
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
Cluster automatisch upgraden met gepland onderhoud
Als u gepland onderhoud en automatische upgrade gebruikt, wordt de upgrade tijdens het opgegeven onderhoudsvenster uitgevoerd. Zie Gepland onderhoud gebruiken Azure Kubernetes Service om onderhoudsvensters voor uw AKS-cluster (preview)te plannen voor meer informatie over gepland onderhoud.
Speciale overwegingen voor knooppuntgroepen die meerdere knooppuntgroepen Beschikbaarheidszones
AKS maakt gebruik van zoneverdeling met de beste inspanning in knooppuntgroepen. Tijdens een upgradepieken zijn zone(s) voor de piek-knooppunt(en) in virtuele-machineschaalsets van tevoren onbekend. Dit kan tijdelijk leiden tot een niet-gebalanceerde zoneconfiguratie tijdens een upgrade. AKS verwijdert echter de piek-knooppunt(en) zodra de upgrade is voltooid en behoudt de oorspronkelijke zone-saldo. Als u uw zones in balans wilt houden tijdens de upgrade, verhoogt u de piek naar een veelvoud van 3 knooppunten. Virtuele-machineschaalsets brengen uw knooppunten vervolgens in balans Beschikbaarheidszones met zoneverdeling met de beste inspanning.
Als u PVC's hebt die worden geback-overgeslagen door Azure LRS-schijven, worden ze gebonden aan een bepaalde zone en kunnen ze mogelijk niet onmiddellijk worden hersteld als het piek-knooppunt niet met de zone van de PVC overeenkomt. Dit kan downtime voor uw toepassing veroorzaken wanneer de upgradebewerking knooppunten blijft leeglaten, maar de PV's zijn gebonden aan een zone. Als u deze case wilt afhandelen en hoge beschikbaarheid wilt behouden, configureert u een podonderbrekingsbudget voor uw toepassing. Hierdoor kan Kubernetes voldoen aan uw beschikbaarheidsvereisten tijdens de opslekkenbewerking van de upgrade.
Volgende stappen
In dit artikel hebt u kunnen lezen hoe u een bestaand AKS-cluster kunt upgraden. Zie de reeks zelfstudies voor meer informatie over het implementeren en beheren van AKS-clusters.