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. Du kan också utföra nodbilduppgraderingar automatiskt och schemalägga dem 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

  1. Kontrollera om det finns tillgängliga nodbildsuppgraderingar med hjälp av az aks nodepool get-upgrades kommandot .

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. Leta upp och anteckna värdet i latestNodeImageVersion utdata. Det här värdet är den senaste nodbildversionen som är tillgänglig för nodpoolen.

  3. Kontrollera din aktuella nodbildversion för att jämföra med den senaste versionen med hjälp av az aks nodepool show kommandot .

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. Om värdet nodeImageVersion skiljer sig från latestNodeImageVersionkan du uppgradera nodbilden.

Uppgradera alla noder i alla nodpooler

  1. Uppgradera alla nodavbildningar i alla nodpooler i klustret med az aks upgrade kommandot med --node-image-only flaggan .

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. 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}'
    
  3. 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 <resource-group> \
        --name <cluster-name>
    

Uppgradera en specifik nodpool

  1. Uppdatera OS-avbildningen av en nodpool utan att göra en Kubernetes-klusteruppgradering med kommandot az aks nodepool upgrade med --node-image-only flaggan .

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. 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}'
    
  3. 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 <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

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.

  1. Uppgradera nodbilder med node surge med az aks nodepool update kommandot med --max-surge flaggan för att konfigurera antalet noder som används för uppgraderingar.

    Kommentar

    Mer information om kompromisser med olika --max-surge inställningar finns i Anpassa uppgradering av nodtoppar.

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. 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}'
    
  3. Hämta information om den uppdaterade nodpoolen med hjälp av 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 <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Nästa steg