Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som en del av programmets och klustrets livscykel kanske du vill uppgradera till den senaste tillgängliga versionen av Kubernetes. Du kan uppgradera ditt AkS-kluster (Azure Kubernetes Service) med hjälp av Azure CLI, Azure PowerShell eller Azure Portal.
I den här handledningen uppgraderar du ett AKS-kluster. Du lär dig att:
- Identifiera aktuella och tillgängliga Kubernetes-versioner.
- Uppgradera kubernetes-noderna.
- Verifiera en lyckad uppgradering.
Innan du börjar
I tidigare självstudier paketerade du ett program i en containeravbildning och laddade upp containeravbildningen till Azure Container Registry (ACR). Du har också skapat ett AKS-kluster och distribuerat ett program till det. Om du inte har slutfört de här stegen och vill följa med börjar du med Självstudie 1 – Förbereda programmet för AKS.
Om du använder Azure CLI så kräver den här handledningen Azure CLI version 2.34.1 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Om du använder Azure PowerShell behöver du Azure PowerShell version 5.9.0 eller senare för den här självstudien. Kör Get-InstalledModule -Name Az för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Install Azure PowerShell (Installera Azure PowerShell).
För att uppgradera ett AKS-kluster behöver du rollen Azure Kubernetes Service Contributor eller motsvarande behörigheter.
Innan du uppgraderar bör du granska AKS-versionsinformationen för icke-bakåtkompatibla ändringar och föråldrade API:er. Validera även arbetsbelastningens Pod Disruption Budgets (PDB:er), tillgänglig beräkningskvot och undernätets IP-kapacitet för surgenoder. Mer information finns i Uppgraderingsalternativ och rekommendationer för AKS-kluster.
Hämta tillgängliga klusterversioner med hjälp av Azure CLI
Innan du uppgraderar kontrollerar du vilka Kubernetes-versioner som är tillgängliga för klustret med hjälp az aks get-upgrades av kommandot .
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
Följande exempelutdata visar ett klusters aktuella version och visar nyare versioner under upgrades:
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.33.7",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.34.10"
},
{
"isPreview": null,
"kubernetesVersion": "1.34.9"
}
]
},
...
}
Hämta tillgängliga klusterversioner med hjälp av Azure PowerShell
Innan du uppgraderar kontrollerar du klustrets aktuella Kubernetes-version och -region med hjälp av cmdleten
Get-AzAksCluster.Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -Property Name, CurrentKubernetesVersion, LocationFöljande exempelutdata visar klustrets aktuella version och plats:
Name CurrentKubernetesVersion Location ---- ------------------------ -------- myAKSCluster 1.33.7 westus2Lista de Kubernetes-versioner som är tillgängliga i den region där klustret finns med hjälp av cmdleten
Get-AzAksVersion.Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersionFöljande exempelutdata visar de regionala versionerna under
OrchestratorVersion:Default IsPreview OrchestratorType OrchestratorVersion ------- --------- ---------------- ------------------- Kubernetes 1.34.10 Kubernetes 1.34.9 True Kubernetes 1.33.7 ...Om du vill identifiera potentiella uppgraderingsmål jämför du versioner som är nyare än klustrets aktuella version med uppgraderingsreglerna för Kubernetes-versionen. Den här cmdleten visar regional tillgänglighet och validerar inte uppgraderingssökvägen för ett specifikt kluster.
Hämta tillgängliga klusterversioner med hjälp av Azure-portalen
Logga in på Azure-portalen.
Gå till din AKS-klusterresurs.
På tjänstmenyn går du till Inställningar och väljer Uppgraderingar.
Efter Kubernetes-version, välj Uppgradera version.
På sidan Uppgradera Kubernetes-version väljer du listrutan Kubernetes-version för att visa tillgängliga Kubernetes-versioner för uppgradering.
Om inga uppgraderingar är tillgängliga kanske klustret redan har den senaste tillgängliga versionen eller så kan klusterversionen ligga utanför supportfönstret. Om versionen inte stöds och AKS inte erbjuder någon återställningsuppgradering skapar du ett nytt kluster med en Kubernetes-version som stöds och migrerar dina arbetsbelastningar. Mer information finns i AKS-supportprinciper för Kubernetes-versioner.
AKS-klustrets uppgraderingsprocess
AKS-noder är noggrant avspärrade och tömda för att minimera eventuella störningar i program som körs. Under den här processen utför AKS följande steg:
- Lägger till en ny buffertnod (eller så många noder som konfigurerats i maximal ökning) till klustret som kör den angivna Kubernetes-versionen.
- Dränerar och begränsar en av de gamla noderna för att minimera störningar i program som körs. Om du använder maximal ökning av kapacitet isolerar och tömmer den lika många noder samtidigt som det angivna antalet buffertnoder.
- När den gamla noden är helt tömd återskapas den för att ta emot den nya versionen och blir buffertnoden för följande nod som ska uppgraderas.
- Den här processen upprepas tills alla noder i klustret har uppgraderats.
- I slutet av processen tas den sista buffertnoden bort, vilket bibehåller det befintliga antalet agentnoder och zonsaldot.
Kommentar
Om ingen korrigering anges uppgraderas klustret automatiskt till den angivna delversionens senaste GA-korrigering. Om du till exempel ställer in --kubernetes-version på resulterar det i att 1.28 klustret uppgraderas till 1.28.9.
Mer information finns i Kubernetes-delversionsuppgraderingar som stöds i AKS.
Du kan antingen uppgradera klustret manuellt eller konfigurera automatiska klusteruppgraderingar. Konfigurera automatiska klusteruppgraderingar för att hålla klustret på en version av Kubernetes som stöds.
Uppgradera klustret manuellt med hjälp av Azure CLI
Uppgradera klustret med kommandot az aks upgrade. I det här exemplet uppgraderas klustret till version 1.34.10:
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version 1.34.10
Kommentar
Kluster utan LTS-stöd måste uppgraderas en mindre version i taget. Om du till exempel vill uppgradera från 1.33.x till 1.35.x uppgraderar du först till 1.34.x. Ett LTS-kluster kan hoppa över mindre versioner när de flyttas till en högre LTS-version som erbjuds av AKS om uppgraderingen uppfyller kraven på versionsförskjutning och verifieringskontroller. Mer information finns i Uppgraderingsregler för Kubernetes-version.
Följande exempelutdata visar resultatet av uppgraderingen. Värdet kubernetesVersion matchar nu den version som anges i exempelkommandot:
{
...
"agentPoolProfiles": [
{
...
"count": 3,
"currentOrchestratorVersion": "1.34.10",
"maxPods": 110,
"name": "nodepool1",
"nodeImageVersion": "AKSUbuntu-2204gen2containerd-202608.26.0",
"orchestratorVersion": "1.34.10",
"osType": "Linux",
"upgradeSettings": {
"drainTimeoutInMinutes": null,
"maxSurge": "10%",
"nodeSoakDurationInMinutes": null,
"undrainableNodeBehavior": null
},
"vmSize": "Standard_DS2_v2",
...
}
],
...
"currentKubernetesVersion": "1.34.10",
"dnsPrefix": "myAKSClust-myResourceGroup-12ab34",
"enableRbac": false,
"fqdn": "myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.34.10",
"location": "westus2",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
...
}
Uppgradera klustret manuellt med Azure PowerShell
Uppgradera klustret med hjälp av cmdleten Set-AzAksCluster . I det här exemplet uppgraderas klustret till version 1.34.10:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion 1.34.10
Kommentar
Icke-LTS-kluster som stöds måste uppgraderas ett mindre versionssteg i taget. Om du till exempel vill uppgradera från 1.33.x till 1.35.x uppgraderar du först till 1.34.x. Ett LTS-kluster kan hoppa över mindre versioner när de flyttas till en högre LTS-version som erbjuds av AKS om uppgraderingen uppfyller kraven på versionsförskjutning och verifieringskontroller. Mer information finns i Uppgraderingsregler för Kubernetes-version.
Följande exempelutdata visar resultatet av uppgraderingen. Värdet KubernetesVersion matchar nu den version som anges i exempel-cmdleten:
...
ProvisioningState : Succeeded
MaxAgentPools : 100
KubernetesVersion : 1.34.10
CurrentKubernetesVersion : 1.34.10
...
ResourceGroupName : myResourceGroup
Name : myAKSCluster
Type : Microsoft.ContainerService/ManagedClusters
Location : westus2
Tags :
Uppgradera klustret manuellt med hjälp av Azure-portalen
I Azure Portal navigerar du till aks-klusterresursen.
På tjänstmenyn går du till Inställningar och väljer Uppgraderingar.
Efter Kubernetes-version, välj Uppgradera version.
På sidan Uppgradera Kubernetes-version väljer du listrutan Kubernetes-version för att visa tillgängliga Kubernetes-versioner för uppgradering.
Välj den Kubernetes-version som du vill uppgradera till och välj sedan Spara.
Uppgraderingens varaktighet beror på faktorer som antalet noder, överspänningsinställningar, begränsningar för arbetsbelastningsavbrott, timeout för tömning och varaktighet för nodavblödning. Standardtimeouten för tömning är 30 minuter per nod och kan konfigureras från fem minuter till 24 timmar. Node-soaktiden kan lägga till mellan 0 och 30 minuter per nod. Mer information finns i Anpassa överspänning av nodpooler och otillgängliga inställningar.
Konfigurera automatiska klusteruppgraderingar med hjälp av Azure CLI
Konfigurera automatiska klusteruppgraderingar med hjälp av Azure PowerShell
Konfigurera automatiska klusteruppgraderingar med hjälp av Azure-portalen
AKS Automatiska kluster använder stable kanalen och du behöver inte konfigurera en kanal. För AKS Standard-kluster väljer du en kanal baserat på din versionsprincip. Kanalerna stable och rapid avancerar Kubernetes-delversioner och hjälper till att hålla klustret inom det versionsfönster som stöds. Kanalen patch installerar endast korrigeringar för den aktuella delversionen och avancerar inte klustret till en nyare delversion.
I ett AKS Standard-kluster anger du kanalen för automatisk uppgradering med kommandot az aks update. I följande exempel används stable kanalen:
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
I ett AKS Standard-kluster anger du autoupgrade-kanalen med hjälp av cmdleten Set-AzAksCluster . I följande exempel används Stable kanalen:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
I Azure Portal navigerar du till aks-klusterresursen.
På tjänstmenyn går du till Inställningar och väljer Uppgraderingar.
Efter Kubernetes-version, välj Uppgradera version.
För ett AKS Standard-kluster går du till sidan Uppgradera Kubernetes-version , väljer listrutan Automatisk uppgradering , väljer Aktiverad med stabil och väljer sedan Spara.
Mer information finns i Uppgradera ett AKS-kluster (Azure Kubernetes Service) automatiskt.
Uppgradera nodbilder
AKS tillhandahåller regelbundet nya nodbilder. Linux-nodbilder uppdateras varje vecka och Windows-nodbilder uppdateras varje månad. Vi rekommenderar att du uppgraderar nodbilderna ofta för att använda de senaste AKS-funktionerna och säkerhetsuppdateringarna. Mer information finns i Uppgradera nodbilder i Azure Kubernetes Service (AKS). Information om hur du konfigurerar automatiska nodavbildningsuppgraderingar finns i Uppgradera azure Kubernetes Service -klusternodens operativsystemavbildningar automatiskt.
Visa uppgraderingshändelser
Kommentar
När du uppgraderar klustret kan följande Kubernetes-händelser inträffa på noderna:
- Överspänning: Skapa en överspänningsnod.
- Dränera: Avlägsna poddar från noden. AKS tillåter 30 minuter att tömma en nod som standard. Du kan konfigurera tidsgränsen för avlopp från fem minuter till 24 timmar.
- Uppdatering: Uppdateringen av en nod har slutförts eller misslyckats.
- Ta bort: Ta bort en överspänningsnod.
kubectl get Använd kommandot med en fältväljare för att visa AKS-uppgraderingshändelser i standardnamnområdet.
kubectl get events --field-selector source=upgrader
Följande exempelutdata visar några av de föregående händelserna som anges under en uppgradering:
LAST SEEN TYPE REASON OBJECT MESSAGE
...
5m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
5m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Deleting node aks-nodepool1-12345678-vmss000000 from API server
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully reimaged node: aks-nodepool1-12345678-vmss000000
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully upgraded node: aks-nodepool1-12345678-vmss000000
4m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
...
Verifiera en uppgradering med hjälp av Azure CLI
Bekräfta att uppgraderingen lyckades genom att använda kommandot az aks show.
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Följande exempelutdata visar att AKS-klustret kör kubernetes-målversionen:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster westus2 myResourceGroup 1.34.10 1.34.10 Succeeded myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io
Verifiera en uppgradering med hjälp av Azure PowerShell
Bekräfta att uppgraderingen lyckades med hjälp av cmdleten Get-AzAksCluster .
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState
Följande exempelutdata visar att AKS-klustret kör kubernetes-målversionen:
Name Location KubernetesVersion ProvisioningState
---- -------- ----------------- -----------------
myAKSCluster westus2 1.34.10 Succeeded
Verifiera en uppgradering med hjälp av Azure-portalen
- I Azure Portal navigerar du till aks-klusterresursen.
- På sidan Översikt , under Essentials, kontrollerar du Kubernetes-versionen för att bekräfta att uppgraderingen lyckades.
Ta bort klustret med hjälp av Azure CLI
Ta bort klustret med hjälp av Azure PowerShell
Ta bort klustret med hjälp av Azure-portalen
Eftersom den här självstudien är den sista delen av serien kanske du vill ta bort ditt AKS-kluster för att undvika att debiteras Azure-avgifter.
Ta bort resursgruppen, containertjänsten och alla relaterade resurser med hjälp az group delete av kommandot .
az group delete --name myResourceGroup --yes --no-wait
Ta bort resursgruppen, containertjänsten och alla relaterade resurser med hjälp av cmdleten Remove-AzResourceGroup .
Remove-AzResourceGroup -Name myResourceGroup
- I Azure Portal navigerar du till aks-klusterresursen.
- Välj Ta bort på sidan Översikt.
- På sidan Ta bort klusterbekräftelse väljer du Ta bort.
Kommentar
När du tar bort klustret tas inte Microsoft Entra-tjänstens huvudnamn som används av AKS-klustret bort. Stegvisa instruktioner om hur du tar bort tjänstens huvudnamn finns i dokumentationen om viktiga överväganden och borttagning av AKS-tjänsten. Om du använde en hanterad identitet hanteras identiteten av plattformen och kräver inte att du etablerar eller roterar några hemligheter.
Nästa steg
I den här handledningen har du uppgraderat Kubernetes i ett AKS-kluster. Du har lärt dig att:
- Identifiera aktuella och tillgängliga Kubernetes-versioner.
- Uppgradera kubernetes-noderna.
- Verifiera en lyckad uppgradering.
Mer information om AKS finns i AKS-översikten. Vägledning om hur du skapar fullständiga lösningar med AKS finns i vägledningen för AKS-lösningen.