uppgradering Azure Kubernetes Service nodavbildningar (AKS)

AKS stöder uppgradering av avbildningarna på en nod så att du är uppdaterad med de senaste os- och körningsuppdateringarna. AKS tillhandahåller en ny avbildning per vecka med de senaste uppdateringarna, så det är fördelaktigt att uppgradera nodens avbildningar regelbundet för de senaste funktionerna, inklusive Linux Windows korrigeringar. Även om kunderna meddelas om avbildningsuppgraderingar via AKS-versionen kan det ta upp till en vecka innan uppdateringarna distribueras i alla regioner. Den här artikeln visar hur du uppgraderar avbildningar av AKS-klusternoder och hur du uppdaterar avbildningar av nodpooler utan att uppgradera versionen av Kubernetes.

Mer information om de senaste avbildningarna från AKS finns i viktig information om AKS.

Information om hur du uppgraderar Kubernetes-versionen för klustret finns i Uppgradera ett AKS-kluster.

Anteckning

AKS-klustret måste använda VM-skalningsuppsättningar för noderna.

Kontrollera om nodpoolen finns på den senaste nodavbildningen

Du kan se vilken version av den senaste nodavbildningen som är tillgänglig för nodpoolen med följande kommando:

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

I utdata kan du se latestNodeImageVersion like i exemplet nedan:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/nodepool1/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
}

Så för nodepool1 den senaste tillgängliga nodavbildningen är AKSUbuntu-1604-2020.10.28 . Nu kan du jämföra den med den aktuella nodavbildningsversionen som används av nodpoolen genom att köra:

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

Exempel på utdata är:

"AKSUbuntu-1604-2020.10.08"

I det här exemplet kan du därför uppgradera från den aktuella AKSUbuntu-1604-2020.10.08 avbildningsversionen till den senaste versionen AKSUbuntu-1604-2020.10.28 .

Uppgradera alla noder i alla nodpooler

Uppgradering av nodavbildningen görs med az aks upgrade . Om du vill uppgradera nodavbildningen använder du följande kommando:

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

Under uppgraderingen kontrollerar du statusen för nodavbildningarna med följande kommando för att hämta etiketterna och kubectl filtrera bort den aktuella nodavbildningsinformationen:

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 för att az aks show hämta information om den uppdaterade nodpoolen. Den aktuella nodavbildningen visas i nodeImageVersion egenskapen .

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

Uppgradera en specifik nodpool

Att uppgradera avbildningen i en nodpool påminner om att uppgradera avbildningen i ett kluster.

Om du vill uppdatera OS-avbildningen av nodpoolen utan att göra en Kubernetes-klusteruppgradering --node-image-only använder du alternativet i följande exempel:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

Under uppgraderingen kontrollerar du statusen för nodavbildningarna med följande kommando för att hämta etiketterna och kubectl filtrera bort den aktuella nodavbildningsinformationen:

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 för att az aks nodepool show hämta information om den uppdaterade nodpoolen. Den aktuella nodavbildningen visas i nodeImageVersion egenskapen .

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Uppgradera nodavbildningar med en ökning av noden

Om du vill påskynda uppgraderingen av nodavbildningen kan du uppgradera dina nodavbildningar med hjälp av ett anpassningsbart värde för nodtoppar. Som standard använder AKS en ytterligare nod för att konfigurera uppgraderingar.

Om du vill öka uppgraderingarna använder du värdet för att konfigurera antalet noder som ska användas för uppgraderingar så --max-surge att de slutförs snabbare. Mer information om avvägningarna mellan olika inställningar finns i Anpassa uppgradering --max-surge av nodtoppar.

Följande kommando anger det högsta ökningsvärdet för att utföra en nodavbildningsuppgradering:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --node-image-only \
    --no-wait

Under uppgraderingen kontrollerar du statusen för nodavbildningarna med följande kommando för att hämta etiketterna och kubectl filtrera bort den aktuella nodavbildningsinformationen:

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 nodavbildningen visas i nodeImageVersion egenskapen .

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Nästa steg