Dela via


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. Meddelanden om bilduppgraderingar ingår i AKS-versionsinformation, och det kan ta upp till en vecka innan dessa uppdateringar 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.

Anmärkning

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).

Ansluta till ditt AKS-kluster

  1. Anslut till ditt AKS-kluster med kommandot [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

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 $AKS_NODEPOOL \
        --cluster-name $AKS_CLUSTER \
        --resource-group $AKS_RESOURCE_GROUP
    
  2. Hitta och anteckna värdet för latestNodeImageVersion i 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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    
  4. Om värdet nodeImageVersion skiljer sig från latestNodeImageVersionkan du uppgradera nodbilden.

Uppgradera alla nodbilder 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 $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-image-only \
        --yes
    
  2. Du kan kontrollera statusen för nodbilderna kubectl get nodes med hjälp av kommandot .

    Anmärkning

    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 $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  2. Du kan kontrollera statusen för nodbilderna kubectl get nodes med kommandot .

    Anmärkning

    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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL
    

Uppgradera nodavbildningar med nodökning

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 noddökning genom att använda az aks nodepool update kommandot med --max-surge flaggan för att konfigurera antalet noder som används vid uppgraderingen.

    Anmärkning

    Mer information om kompromisser mellan olika --max-surge inställningar finns i Anpassa node surge upgrade.

    az aks nodepool update \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --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 uppdaterad information om nodpoolen med hjälp av az aks nodepool show kommandot . Den aktuella nodbilden visas i egenskapen nodeImageVersion.

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL
    

Nästa steg