Självstudie: Uppgradera Kubernetes i Azure Kubernetes Service (AKS)
Som en del av programmets och klustrets livscykel kanske du vill uppgradera till den senaste versionen av Kubernetes och använda nya funktioner. Ett kluster med Azure Kubernetes Service (AKS) kan uppgraderas med hjälp av Azure CLI.
I del sju av sju i den här självstudien uppgraderas ett Kubernetes-kluster. Lär dig att:
- Identifiera aktuella och tillgängliga Kubernetes-versioner
- Uppgradera Kubernetes-noderna
- Verifiera uppgraderingen
Innan du börjar
I tidigare självstudier paketerades en app i en containeravbildning. Den här avbildningen laddades upp till Azure Container Registry, och du skapade ett AKS-kluster. Programmet distribuerades sedan till AKS-klustret. Om du inte har utfört de här stegen och vill följa med börjar du med Självstudie 1 – Skapa containeravbildningar.
I den här självstudien måste du köra Azure CLI version 2.0.53 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.
Hämta tillgängliga klusterversioner
Innan du uppgraderar ett kluster använder du kommandot az aks get-upgrades för att kontrollera vilka Kubernetes-versioner som är tillgängliga för uppgradering:
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
I följande exempel är den aktuella versionen 1.18.10 och de tillgängliga versionerna visas under uppgraderingar.
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.18.10",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.19.1"
},
{
"isPreview": null,
"kubernetesVersion": "1.19.3"
}
]
},
...
}
Uppgradera ett kluster
I syfte att minimera störningar av program som körs avspärras och töms noderna noggrant. I den här processen utförs följande steg:
- Kubernetes-schemaläggaren förhindrar att ytterligare poddar schemaläggs på en nod som ska uppgraderas.
- Poddar som körs på noden schemaläggs på andra noder i klustret.
- Det skapas en nod som kör de senaste Kubernetes-komponenterna.
- När den nya noden är redo och ansluten till klustret börjar Kubernetes-schemaläggaren att köra poddar på den.
- Den gamla noden tas bort och nästa nod i klustret börjar avspärrnings- och tömningsprocessen.
Använd kommandot az aks upgrade för att uppgradera AKS-klustret.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version KUBERNETES_VERSION
Anteckning
Du kan endast uppgradera en lägre version i taget. Du kan till exempel uppgradera från 1.14.x till 1.15.x, men inte uppgradera direkt från 1.14.x till 1.16.x. Om du vill uppgradera från 1.14.x till 1.16.x uppgraderar du först från 1.14.x till 1.15.x och utför sedan en annan uppgradering från 1.15.x till 1.16.x.
Följande komprimerade exempelutdata visar resultatet av uppgraderingen till 1.19.1. Observera att kubernetesVersion nu rapporterar 1.19.1:
{
"agentPoolProfiles": [
{
"count": 3,
"maxPods": 110,
"name": "nodepool1",
"osType": "Linux",
"storageProfile": "ManagedDisks",
"vmSize": "Standard_DS1_v2",
}
],
"dnsPrefix": "myAKSClust-myResourceGroup-19da35",
"enableRbac": false,
"fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.19.1",
"location": "eastus",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
}
Verifiera en uppgradering
Bekräfta att uppgraderingen lyckades genom att köra kommandot az aks show på följande sätt:
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Följande exempelutdata visar att AKS-klustret kör KubernetesVersion 1.19.1:
Name Location ResourceGroup KubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------- ----------------------------------------------------------------
myAKSCluster eastus myResourceGroup 1.19.1 Succeeded myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
Ta bort klustret
Eftersom den här självstudien är den sista delen i serien kan du ta bort AKS-klustret. Då Kubernetes-noderna körs på virtuella Azure-datorer fortsätter de att debiteras även om du inte använder klustret. Använd kommandot az group delete för att ta bort resursgruppen, containertjänsten och alla relaterade resurser.
az group delete --name myResourceGroup --yes --no-wait
Anteckning
När du tar bort klustret tas Azure Active Directory-tjänstens huvudnamn, som används av AKS-klustret, inte 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 självstudien 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 uppgraderingen
Mer information om AKS finns i AKS-översikt. Vägledning om hur du skapar fullständiga lösningar med AKS finns i Vägledning för AKS-lösning.