Uppgradera AKS-nodbilder (Azure Kubernetes Service)
Azure Kubernetes Service (AKS) tillhandahåller regelbundet nya nodbilder, så det är bra att uppgradera nodbilderna ofta för att använda de senaste AKS-funktionerna. Linux-nodbilder uppdateras varje vecka och Windows-nodbilder uppdateras varje månad. Avbildningsuppgraderingsmeddelanden ingår i AKS-viktig information och det kan ta upp till en vecka innan uppdateringarna distribueras i alla regioner. Nodbilduppgraderingar kan också utföras automatiskt och schemaläggas med planerat underhåll. Mer information finns i Uppgradera nodbilder automatiskt.
Den här artikeln visar hur du uppgraderar AKS-klusternodavbildningar och hur du uppdaterar nodpoolsavbildningar utan att uppgradera Kubernetes-versionen. Information om hur du uppgraderar Kubernetes-versionen för klustret finns i Uppgradera ett AKS-kluster.
Kommentar
AKS-klustret måste använda VM-skalningsuppsättningar för noderna.
Det går inte att nedgradera en nodavbildningsversion (till exempel AKSUbuntu-2204 till AKSUbuntu-1804 eller AKSUbuntu-2204-202308.01.0 till AKSUbuntu-2204-202307.27.0).
Sök efter tillgängliga nodbilduppgraderingar
Kontrollera om det finns tillgängliga nodbildsuppgraderingar med hjälp av az aks nodepool get-upgrades
kommandot .
az aks nodepool get-upgrades \
--nodepool-name mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
Utdata visar latestNodeImageVersion
, som i följande exempel:
{
"id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
"kubernetesVersion": "1.17.11",
"latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
"name": "default",
"osType": "Linux",
"resourceGroup": "myResourceGroup",
"type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
"upgrades": null
}
Exempelutdata visas AKSUbuntu-1604-2020.10.28
som latestNodeImageVersion
.
Jämför den senaste versionen med din aktuella nodbildversion med hjälp av az aks nodepool show
kommandot .
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
Resultatet bör se ut ungefär så här:
"AKSUbuntu-1604-2020.10.08"
I det här exemplet finns det en tillgänglig uppgradering av nodbildens version, som är från version AKSUbuntu-1604-2020.10.08
till version AKSUbuntu-1604-2020.10.28
.
Uppgradera alla nodbilder i alla nodpooler
Uppgradera nodbilden med az aks upgrade
kommandot med --node-image-only
flaggan .
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-image-only
Du kan kontrollera statusen för nodbilderna kubectl get nodes
med hjälp av kommandot .
Kommentar
Det här kommandot kan variera något beroende på vilket gränssnitt du använder. Mer information om Windows- och PowerShell-miljöer finns i Kubernetes JSONPath-dokumentationen.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
När uppgraderingen är klar använder du az aks show
kommandot för att hämta information om den uppdaterade nodpoolen. Den aktuella nodbilden visas i egenskapen nodeImageVersion
.
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster
Uppgradera en specifik nodpool
Om du vill uppdatera OS-avbildningen av en nodpool utan att göra en Kubernetes-klusteruppgradering använder du az aks nodepool upgrade
kommandot med --node-image-only
flaggan .
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-image-only
Du kan kontrollera statusen för nodbilderna kubectl get nodes
med kommandot .
Kommentar
Det här kommandot kan variera något beroende på vilket gränssnitt du använder. Mer information om Windows- och PowerShell-miljöer finns i Kubernetes JSONPath-dokumentationen.
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
När uppgraderingen är klar använder du az aks nodepool show
kommandot för att hämta information om den uppdaterade nodpoolen. Den aktuella nodbilden visas i egenskapen nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Uppgradera nodavbildningar med fler noder
Om du vill påskynda uppgraderingen av nodbilden kan du uppgradera nodbilderna med hjälp av ett anpassningsbart nodvågsvärde. Som standard använder AKS en extra nod för att konfigurera uppgraderingar.
Om du vill öka uppgraderingshastigheten använder du az aks nodepool update
kommandot med --max-surge
flaggan för att konfigurera antalet noder som används för uppgraderingar. Mer information om kompromisser med olika --max-surge
inställningar finns i Anpassa uppgradering av nodtoppar.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--max-surge 33% \
--no-wait
Du kan kontrollera statusen för nodbilderna kubectl get nodes
med kommandot .
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
Använd az aks nodepool show
för att hämta information om den uppdaterade nodpoolen. Den aktuella nodbilden visas i egenskapen nodeImageVersion
.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
Nästa steg
- Mer information om de senaste nodbilderna finns i AKS-viktig information .
- Lär dig hur du uppgraderar Kubernetes-versionen med Uppgradera ett AKS-kluster.
- Tillämpa uppgraderingar av kluster- och nodpool automatiskt med GitHub Actions.
- Läs mer om flera nodpooler med Skapa flera nodpooler.
- En detaljerad beskrivning av metodtips för uppgradering och andra överväganden finns i AKS-korrigerings- och uppgraderingsvägledning.