Dela via


Felsöka AKS-uppgraderingsfel på grund av versionsförskjutning, inkompatibilitet eller brist på support

Förutsättningar

Den här artikeln kräver Azure CLI version 2.67.0 eller en senare version. Om du vill hitta versionsnumret kör du az --version. Om du måste installera eller uppgradera Azure CLI läser du Så här installerar du Azure CLI.

Mer detaljerad information om uppgraderingsprocessen finns i avsnittet "Uppgradera ett AKS-kluster" i Uppgraderingsalternativ och rekommendationer för AkS-kluster (Azure Kubernetes Service).

Symptoms

När du försöker uppgradera ett AKS-kluster med hjälp av Azure CLI blockeras uppgraderingsåtgärden och returnerar ett eller flera av följande felmeddelanden.

Felmeddelande 1: K8sVersionNotSupported

<ClusterName> är på version 1.25.6 som inte stöds i den här regionen. Använd [az aks get-versions] kommandot för att hämta versionslistan som stöds i den här regionen. Mer information finns i Kubernetes-versioner som stöds i Azure Kubernetes Service (AKS).

Felmeddelande 2: OperationNotAllowed

Det är inte tillåtet att uppgradera Kubernetes version 1.24.9 till 1.26.6. Tillgängliga uppgraderingar: [1.29.15 1.29.14 1.29.13 1.29.12 1.29.11 1.29.10 1.2 9.9 1.29.8 1.29.7 1.29.6 1.29.5 1.29.4 1.29.2 1.29.0]. Mer information finns i Kubernetes-versioner som stöds av AKS för mer information om versionen.

Felmeddelande 3: NodePoolMcVersionInkompatibel

Nodpool version 1.24.9 och kontrollplanet version 1.29.15 är inkompatibel. Delversionen av nodpoolen får inte vara mer än 3 versioner mindre än kontrollplanets version. Delversionen av nodpoolen är 24 och kontrollplanet är 29. Mer information finns i Snedprincip för AKS-uppgraderingsversion.

Orsak

Uppgraderingen tillåts inte av en eller flera av följande orsaker:

  • Kubernetes-målversionen (till exempel 1.26 eller 1.25) stöds inte längre i den valda Azure-regionen.

  • Du får inte hoppa över mindre versioner under uppgraderingar (till exempel från 1.24.x till 1,26. x eller 1,27. x) såvida inte den aktuella versionen inte stöds.

  • En versionsförskjutning mellan kontrollplanet och nodpoolen (NodePoolMcVersionInkompatibel) inträffar om du bara försöker uppgradera kontrollplanet. I det här fallet blir nodpoolversionen mer än tre delversioner bakom kontrollplanets version. Ett mellanrum av den här storleken eller större orsakar felet.

Mer information om dessa fel finns i följande artiklar:

Lösning

Steg 1: Verifiera den aktuella versionen och tillgängliga uppgraderingssökvägar

Om du vill visa den aktuella Kubernetes-versionen och uppgraderingsmål som stöds kör du följande kommando:

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

Om bara nyare versioner, till exempel 1.29. x, visas och mellanliggande versioner, till exempel 1.27. x, 1,26. x eller 1,25. x, saknas, detta indikerar att dessa versioner är inaktuella i din region.

Steg 2: Prova en fullständig uppgradering (kontrollplan och nodpool tillsammans)

Eftersom principen för versionsförskjutning kräver att kontrollplan inte får vara fler än tre mindre versioner före nodpooler, är det inte säkert att en separat uppgradering med endast kontrollplan tillåts. Uppgradera i stället både kontrollplanet och nodpoolen tillsammans:

az aks upgrade --resource-group <RG> --name <ClusterName> --kubernetes-version <available upgrade version> --yes

Den här metoden ser till att följande villkor gäller:

  • Du följer principen för versionssnedvridning.
  • Du använder en Kubernetes-version som stöds.
  • Du uppgraderar båda komponenterna på ett samordnat sätt.

Ytterligare tips

  • Verifiera alltid versioner som stöds i din region med hjälp av följande kommando:
az aks get-versions --location <region> --output table
  • Undvik att försöka uppgradera till inaktuella versioner. I den här situationen kan AKS framtvinga ett omedelbart hopp till en långsiktig version som stöds (till exempel version 1.29).

  • Om AKS-kluster kör inaktuella Kubernetes-versioner som bryter mot skevhetsprincipen är de rekommenderade metodtipsen följande:

    • Skapa ett nytt kluster: skapa ett AKS-kluster med hjälp av en Kubernetes-version som stöds.

    • Migrera arbetsbelastningar: För att se till att dina arbetsbelastningar körs på versioner som stöds överför du dem till det nya klustret.

    • Undvik att uppgradera mellan flera versioner: I stället för att uppgradera via flera mindre versioner går du till ett nytt kluster för att minimera komplexiteten och undvika potentiella problem.

    • Säkerhetskopiera och verifiera data: Kontrollera att alla data säkerhetskopieras och verifieras före en migrering.

    • Testa noggrant: Utför noggrann testning i en mellanlagringsmiljö för att identifiera och lösa eventuella kompatibilitetsproblem.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.