Uppgradera aks-klusterkontrollplanet (Azure Kubernetes Service)

AkS-kluster (Azure Kubernetes Service) består av två huvudkomponenter: kontrollplanet som hanteras av Azure och nodpoolerna där dina arbetsbelastningar körs. Den här artikeln fokuserar på att uppgradera kontrollplanet oberoende av varandra, vilket gör att du kan använda nya Kubernetes-versioner för API-serverfunktioner samtidigt som du hanterar uppgraderingar av nodpoolen separat.

Innan du börjar

  • Om du använder Azure CLI kräver den här artikeln Azure CLI version 2.34.1 eller senare. az --version Använd kommandot för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
  • Om du använder Azure PowerShell kräver den här artikeln Azure PowerShell version 5.9.0 eller senare. Använd cmdleten Get-InstalledModule -Name Az för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Install Azure PowerShell (Installera Azure PowerShell).
  • Om du vill utföra uppgraderingsåtgärder behöver du Azure Kubernetes Service deltagarroll eller motsvarande behörigheter.
  • Beta-API:er inaktiveras som standard när du uppgraderar till Kubernetes version 1.30- och 1.27 LTS-versioner.

Varning

Se till att du har tillräcklig beräkningskvot innan du uppgraderar. Om kvoten är låg kan uppgraderingen misslyckas. Mer information finns i Öka kvoter.

Översikt över AKS-uppgraderingstyper

I följande tabell beskrivs tre typer av AKS-uppgraderingar som belyser deras omfång och användningsfall:

Uppgraderingstyp Omfång Användningsfall
Endast kontrollplan API-server, etcd, controller-manager, scheduler Testa nya Kubernetes-API:er innan du uppgraderar arbetsbelastningar
Fullständigt kluster Kontrollplan och alla nodpooler Standarduppgradering för att hålla klustret uppdaterat
Endast nodpool Specifika nodpooler Stegvis distribution efter uppgradering av kontrollplan

Tips/Råd

När du uppgraderar kontrollplanet först kan du verifiera Kubernetes API-kompatibilitet innan de pågående arbetsbelastningarna påverkas. Information om uppgraderingsstrategier för nodpooler finns i Konfigurera löpande uppgraderingar.

Uppgraderingsregler för Kubernetes-version

När du uppgraderar ett AKS-kluster som inte stöds kan du inte hoppa över Kubernetes-delversioner. Du måste utföra alla uppgraderingar sekventiellt efter delversionsnummer. Till exempel tillåts uppgraderingar mellan 1.28.x ->1.29.x eller 1.29.x ->1.30.x . 1.28.x ->1.30.x tillåts inte.

Ett LTS-kluster kan hoppa över mindre versioner när de flyttas till en högre LTS-version som erbjuds av AKS, förutsatt att uppgraderingen uppfyller kraven på versionsförskjutning och valideringskontroller. Mer information finns i Kan jag hoppa över flera AKS-versioner under en klusteruppgradering?.

Från och med Kubernetes 1.28 kan kontrollplanet vara upp till tre mindre versioner före nodpooler. Om kontrollplanet till exempel är på 1.35.x kan nodpoolerna vara 1.32.x, 1.33.x, 1.34.x eller 1.35.x. Information om aktuella begränsningar finns i Snedställningsprincipen för AKS-versionen.

Sök efter tillgängliga AKS-uppgraderingar

Tips/Råd

Information om hur du håller dig uppdaterad med de senaste AKS-versionerna och uppdateringarna finns i AKS-versionsspåraren.

Sök efter tillgängliga Kubernetes-versioner för ditt AKS-kluster med hjälp av az aks get-upgrades kommandot .

az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name> --output table

Följande exempelutdata visar den aktuella versionen som 1.28.9 och visar de tillgängliga versionerna under upgrades:

Name     ResourceGroup          MasterVersion    Upgrades
-------  ---------------        ---------------  --------------
default  <resource-group-name>  1.28.9           1.29.2, 1.29.4

Uppgradera endast AKS-kontrollplanet

Important

Du kan inte utföra en uppgradering med endast kontrollplan när autouppgradering av kluster är aktiverat. Autouppgradering av kluster uppgraderar alltid kontrollplanet och alla nodpooler tillsammans.

  1. Uppgradera kontrollplanet med az aks upgrade kommandot med --control-plane-only flaggan . I följande exempel uppgraderas kontrollplanet till Kubernetes version 1.29.4:

    az aks upgrade \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --kubernetes-version 1.29.4 \
        --control-plane-only
    
  2. Bekräfta att uppgraderingen av kontrollplanet lyckades med kommandot az aks show .

    az aks show --resource-group <resource-group-name> --name <cluster-name> --output table
    

    Följande exempelutdata visar att kontrollplanet nu körs 1.29.4

    Name            Location    ResourceGroup          KubernetesVersion    ProvisioningState    Fqdn
    ------------    ----------  ---------------        -------------------  -------------------  ------------------------------------------------
    <cluster-name>  eastus      <resource-group-name>  1.29.4               Succeeded            <cluster-name>-dns-123abcd4.hcp.eastus.azmk8s.io
    
  3. Kontrollera att nodpoolversionerna förblir oförändrade med kommandot az aks nodepool list .

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name> --query "[].{Name:name,Version:orchestratorVersion}" --output table
    

    I utdata bör nodpoolerna fortfarande visa den tidigare Kubernetes-versionen.

Uppgradera hela AKS-klustret

Anmärkning

Under en fullständig klusteruppgradering uppgraderar AKS kontrollplanet först och uppgraderar sedan varje nodpool sekventiellt. Mer kontroll över uppgraderingar av nodpooler finns i Konfigurera löpande uppgraderingar.

Uppgradera det fullständiga klustret (kontrollplanet och alla nodpooler) med kommandot az aks upgrade . I följande exempel uppgraderas klustret till Kubernetes version 1.29.4:

az aks upgrade \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --kubernetes-version 1.29.4

Vanliga frågor och svar om AKS-kontrollplansuppgradering

Uppgraderar en uppgradering endast av kontrollplan även nodpooler?

Nej. En uppgradering med endast kontrollplan ändrar inte nodpooler. Autouppgradering av kluster fungerar annorlunda: det stöder inte uppgraderingar med endast kontrollplan och uppgraderar kontrollplanet och alla nodpooler tillsammans.

Kan jag uppgradera nodpooler före kontrollplanet?

Nej. Kontrollplanets version måste alltid vara lika med eller större än någon nodpoolversion. Du måste uppgradera kontrollplanet först.

Hur lång tid tar uppgraderingen av kontrollplanet?

Uppgraderingstiden varierar beroende på klustertillstånd och Azure villkor. Övervaka provisioningState med eller Get-AzAksClusteraz aks show . Uppgraderingen är klar när etableringstillståndet är Succeeded.

Lösa problem med uppgradering av kontrollplan

Inga uppgraderingar är tillgängliga

För ett kluster som inte stöds använder du az aks get-upgrades för att kontrollera om AKS erbjuder ett berättigat mål som stöds. Om ett mål är tillgängligt utför du en fullständig klusteruppgradering. Uppgraderingar med endast kontrollplan stöds inte för den här återställningssökvägen.

Om inget mål är tillgängligt kanske klustret redan har den senaste versionen som stöds. Om klustret kör en version som inte stöds skapar du ett nytt kluster med en version som stöds och migrerar dina arbetsbelastningar.

Uppgraderingen misslyckades på grund av inaktuella API:er

Innan du uppgraderar kontrollerar du efter inaktuella API:er med verktyg som kube-no-trouble (kubent):

kubent

Kommandot söker igenom resurser som är tillgängliga via den aktuella kubeconfig-kontexten efter inaktuella Kubernetes API-versioner. Utdata grupperar resultaten efter Kubernetes-versionen och identifierar varje berörd resurs med KIND, NAMESPACE, NAMEoch API_VERSION. Uppdatera källmanifestet för varje listad resurs för att använda en API-version som stöds innan du uppgraderar.