Zelfstudie: Een AKS-cluster (Azure Kubernetes Service) upgraden

Als onderdeel van de levenscyclus van toepassingen en clusters wilt u mogelijk upgraden naar de nieuwste beschikbare versie van Kubernetes. U kunt uw AKS-cluster (Azure Kubernetes Service) upgraden met behulp van de Azure CLI, Azure PowerShell of Azure Portal.

In deze zelfstudie voert u een upgrade uit van een AKS-cluster. U leert het volgende:

  • Identificeer de huidige en beschikbare Kubernetes-versies.
  • Werk uw Kubernetes-knooppunten bij.
  • Valideer een geslaagde upgrade.

Voordat u begint

In eerdere zelfstudies hebt u een toepassing verpakt in een containerafbeelding en de containerafbeelding geüpload naar Azure Container Registry (ACR). U hebt ook een AKS-cluster gemaakt en er een toepassing op geïmplementeerd. Als u deze stappen nog niet hebt voltooid en u deze wilt volgen, begint u met zelfstudie 1: De toepassing voorbereiden voor AKS.

Als u Azure CLI gebruikt, is voor deze zelfstudie Versie 2.34.1 of hoger van Azure CLI vereist. Voer az --version uit om de versie te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.

Als u Azure PowerShell gebruikt, is voor deze zelfstudie Azure PowerShell versie 5.9.0 of hoger vereist. Voer Get-InstalledModule -Name Az uit om de versie te vinden. Als u PowerShell wilt installeren of upgraden, raadpleegt u De Azure PowerShell installeren.

Als u een AKS-cluster wilt upgraden, hebt u de rol Azure Kubernetes Service Inzender of gelijkwaardige machtigingen nodig.

Voordat u een upgrade uitvoert, bekijkt u de opmerkingen bij de AKS-release voor belangrijke wijzigingen en afgeschafte API's. Valideer ook de podonderbrekingsbudgetten (PDBs) van uw workload, het beschikbare rekenquotum en de IP-capaciteit van het subnet voor piekknooppunten. Zie Upgradeopties en aanbevelingen voor AKS-clusters voor meer informatie.

Beschikbare clusterversies ophalen met behulp van de Azure CLI

Voordat u een upgrade uitvoert, controleert u met behulp van de az aks get-upgrades opdracht welke Kubernetes-releases beschikbaar zijn voor uw cluster.

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster

In de volgende voorbeelduitvoer ziet u de huidige versie van een cluster en ziet u een lijst met nieuwere versies onder upgrades:

  {
    "agentPoolProfiles": null,
    "controlPlaneProfile": {
      "kubernetesVersion": "1.33.7",
      ...
      "upgrades": [
        {
          "isPreview": null,
          "kubernetesVersion": "1.34.10"
        },
        {
          "isPreview": null,
          "kubernetesVersion": "1.34.9"
        }
      ]
    },
    ...
  }

Beschikbare clusterversies ophalen met behulp van Azure PowerShell

  1. Voordat u een upgrade uitvoert, controleert u de huidige Kubernetes-versie en -regio van uw cluster met behulp van de Get-AzAksCluster cmdlet.

    Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
      Select-Object -Property Name, CurrentKubernetesVersion, Location
    

    In de volgende voorbeelduitvoer ziet u de huidige versie en locatie van het cluster:

    Name              CurrentKubernetesVersion      Location
    ----              ------------------------      --------
    myAKSCluster      1.33.7                        westus2
    
  2. Vermeld de Kubernetes-releases die beschikbaar zijn in de regio waarin uw cluster zich bevindt met behulp van de Get-AzAksVersion cmdlet.

    Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersion
    

    In de volgende voorbeelduitvoer ziet u de regionale versies onder OrchestratorVersion:

    Default     IsPreview     OrchestratorType     OrchestratorVersion
    -------     ---------     ----------------     -------------------
                              Kubernetes               1.34.10
                              Kubernetes               1.34.9
    True                      Kubernetes               1.33.7
    ...
    

    Als u potentiële upgradedoelen wilt identificeren, vergelijkt u versies hoger dan de huidige versie van uw cluster met de upgraderegels voor Kubernetes-versies. Deze cmdlet vermeldt regionale beschikbaarheid en valideert het upgradepad voor een specifiek cluster niet.

Beschikbare clusterversies ophalen met behulp van de Azure-portal

  1. Meld u aan bij het Azure-portaal.

  2. Navigeer naar uw AKS-clusterresource.

  3. Selecteer Upgrades in het servicemenu onder Instellingen.

  4. Bij Kubernetes-versie selecteer Upgradeversie.

    Schermopname van de optie Upgradeversie in de Azure Portal.

  5. Op de pagina Upgrade Kubernetes-versie selecteert u de vervolgkeuzelijst Kubernetes-versie om beschikbare Kubernetes-versies voor upgrade te bekijken.

    Schermopname van het scherm Upgradeversie met beschikbare upgradeversies.

Als er geen upgrades beschikbaar zijn, bevindt uw cluster zich mogelijk al in de meest recente beschikbare versie of bevindt de clusterversie zich mogelijk buiten het ondersteuningsvenster. Als de versie niet wordt ondersteund en AKS geen herstelupgrade biedt, maakt u een nieuw cluster met een ondersteunde Kubernetes-versie en migreert u uw workloads. Zie AKS-ondersteuningsbeleid voor Kubernetes-versies voor meer informatie.

Upgradeproces voor AKS-clusters

AKS-knooppunten worden zorgvuldig vastgezet en leeggezogen om mogelijke onderbrekingen van actieve toepassingen tot een minimum te beperken. Tijdens dit proces voert AKS de volgende stappen uit:

  • Voegt een nieuw bufferknooppunt (of zo veel knooppunten als geconfigureerd in maximale piek) toe aan het cluster waarop de opgegeven Kubernetes-versie wordt uitgevoerd.
  • Cordons en leegt een van de oude knooppunten om onderbreking van actieve toepassingen te minimaliseren. Als u de maximale surge gebruikt, worden zoveel knooppunten tegelijkertijd afgeschermd en leeggemaakt als het aantal opgegeven bufferknooppunten.
  • Wanneer het oude knooppunt volledig leeggemaakt is, wordt het opnieuw geïnstalleerd om de nieuwe versie te installeren en fungeert als bufferknooppunt voor het volgende knooppunt dat moet worden bijgewerkt.
  • Dit proces wordt herhaald totdat alle knooppunten in het cluster zijn bijgewerkt.
  • Aan het einde van het proces wordt het laatste bufferknooppunt verwijderd, waarbij het bestaande aantal agentknooppunten en het zonesaldo behouden blijven.

Opmerking

Als er geen patch is opgegeven, wordt het cluster automatisch bijgewerkt naar de gespecificeerde subversie, de nieuwste GA-patch. Bijvoorbeeld, het instellen van --kubernetes-version op 1.28 leidt tot het upgraden van de cluster naar 1.28.9.

Bekijk Ondersteunde Kubernetes-secundaire versie-upgrades in AKS voor meer informatie.

U kunt uw cluster handmatig upgraden of automatische clusterupgrades configureren. Configureer automatische clusterupgrades om uw cluster op een ondersteunde versie van Kubernetes te houden.

Cluster handmatig upgraden met behulp van de Azure CLI

Werk uw cluster bij met behulp van de az aks upgrade opdracht. In dit voorbeeld wordt het cluster bijgewerkt naar versie 1.34.10:

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --kubernetes-version 1.34.10

Opmerking

Ondersteunde niet-LTS-clusters moeten achtereenvolgens per secundaire versie worden geüpgraded. Als u bijvoorbeeld een upgrade wilt uitvoeren van 1.33.x naar 1.35.x, moet u eerst upgraden naar 1.34.x. Een LTS-cluster kan secundaire versies overslaan bij het overstappen naar een hogere LTS-versie die door AKS wordt aangeboden als de upgrade voldoet aan de vereisten voor versieverschil en validatiecontroles. Zie Kubernetes-versie-upgraderegels voor meer informatie.

In de volgende voorbeelduitvoer ziet u het resultaat van de upgrade. De kubernetesVersion waarde komt nu overeen met de versie die is opgegeven in de voorbeeldopdracht:

{
  ...
  "agentPoolProfiles": [
    {
      ...
      "count": 3,
      "currentOrchestratorVersion": "1.34.10",
      "maxPods": 110,
      "name": "nodepool1",
      "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202608.26.0",
      "orchestratorVersion": "1.34.10",
      "osType": "Linux",
      "upgradeSettings": {
        "drainTimeoutInMinutes": null,
        "maxSurge": "10%",
        "nodeSoakDurationInMinutes": null,
        "undrainableNodeBehavior": null
      },
      "vmSize": "Standard_DS2_v2",
      ...
    }
  ],
  ...
  "currentKubernetesVersion": "1.34.10",
  "dnsPrefix": "myAKSClust-myResourceGroup-12ab34",
  "enableRbac": false,
  "fqdn": "myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io",
  "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "kubernetesVersion": "1.34.10",
  "location": "westus2",
  "name": "myAKSCluster",
  "type": "Microsoft.ContainerService/ManagedClusters"
  ...
}

Cluster handmatig upgraden met behulp van Azure PowerShell

Werk uw cluster bij met behulp van de Set-AzAksCluster cmdlet. In dit voorbeeld wordt het cluster bijgewerkt naar versie 1.34.10:

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion 1.34.10

Opmerking

Ondersteunde niet-LTS-clusters moeten sequentieel per minorversie worden geüpgraded. Als u bijvoorbeeld een upgrade wilt uitvoeren van 1.33.x naar 1.35.x, moet u eerst upgraden naar 1.34.x. Een LTS-cluster kan secundaire versies overslaan bij het overstappen naar een hogere LTS-versie die door AKS wordt aangeboden als de upgrade voldoet aan de vereisten voor versieverschil en validatiecontroles. Zie Kubernetes-versie-upgraderegels voor meer informatie.

In de volgende voorbeelduitvoer ziet u het resultaat van de upgrade. De KubernetesVersion waarde komt nu overeen met de versie die is opgegeven in de voorbeeld-cmdlet:

...
ProvisioningState        : Succeeded
MaxAgentPools            : 100
KubernetesVersion        : 1.34.10
CurrentKubernetesVersion : 1.34.10
...
ResourceGroupName        : myResourceGroup
Name                     : myAKSCluster
Type                     : Microsoft.ContainerService/ManagedClusters
Location                 : westus2
Tags                     :

Cluster handmatig upgraden met behulp van de Azure-portal

  1. Navigeer in Azure Portal naar uw AKS-clusterresource.

  2. Selecteer Upgrades in het servicemenu onder Instellingen.

  3. Bij Kubernetes-versie selecteer Upgradeversie.

    Schermopname van de optie Upgradeversie in de Azure Portal.

  4. Op de pagina Upgrade Kubernetes-versie selecteert u de vervolgkeuzelijst Kubernetes-versie om beschikbare Kubernetes-versies voor upgrade te bekijken.

    Schermopname van het scherm Upgradeversie met beschikbare upgradeversies.

  5. Selecteer de Kubernetes-versie waarnaar u een upgrade wilt uitvoeren en selecteer vervolgens Opslaan.

De duur van de upgrade hangt af van factoren zoals het aantal knooppunten, surge-instellingen, beperkingen voor onderbreking van workloads, de drain-time-out en de soakduur van knooppunten. De standaard time-out voor afvoeren is 30 minuten per knooppunt en kan worden geconfigureerd van vijf minuten tot 24 uur. De inwerktijd van een knooppunt kan 0 tot 30 minuten per knooppunt toevoegen. Zie surge- en onbeschikbaarheidsinstellingen voor nodepools aanpassen voor meer informatie.

Automatische clusterupgrades configureren met behulp van de Azure CLI

Automatische clusterupgrades configureren met Azure PowerShell

Automatische clusterupgrades configureren met behulp van de Azure-portal

Automatische AKS-clusters gebruiken het stable kanaal en u hoeft geen kanaal te configureren. Selecteer voor AKS Standard-clusters een kanaal op basis van uw versiebeleid. De kanalen stable en rapid werken Kubernetes-minorversies bij en helpen het cluster binnen het ondersteunde versiebereik te houden. Het patch kanaal installeert alleen patches voor de huidige minorversie en werkt het cluster niet bij naar een nieuwere minorversie.

Stel op een AKS Standard-cluster het kanaal autoupgrade in met behulp van de az aks update opdracht. In het volgende voorbeeld wordt het stable kanaal gebruikt:

az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable

Stel op een AKS Standard-cluster het autoupgradekanaal in met de Set-AzAksCluster-cmdlet. In het volgende voorbeeld wordt het Stable kanaal gebruikt:

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
  1. Navigeer in Azure Portal naar uw AKS-clusterresource.

  2. Selecteer Upgrades in het servicemenu onder Instellingen.

  3. Bij Kubernetes-versie selecteer Upgradeversie.

    Schermopname van de optie Upgradeversie in de Azure Portal.

  4. Voor een AKS Standard-cluster selecteert u op de pagina Kubernetes-versie upgraden de vervolgkeuzelijst Automatische upgrade , selecteert u Ingeschakeld met stabiel en selecteert u Opslaan.

    Schermopname van de pagina Kubernetes-versie upgraden met de opties voor het automatische upgradekanaal.

Zie Een AKS-cluster (Azure Kubernetes Service) automatisch upgraden voor meer informatie.

Knooppuntinstallatiekopieën upgraden

AKS biedt regelmatig nieuwe knooppuntafbeeldingen. Installatiekopieën van Linux-knooppunten worden wekelijks bijgewerkt en Installatiekopieën van Windows-knooppunten worden maandelijks bijgewerkt. We raden u aan uw node-afbeeldingen regelmatig te upgraden, zodat u de nieuwste AKS-functies en beveiligingsupdates kunt gebruiken. Voor meer informatie, zie Knooppuntafbeeldingen upgraden in Azure Kubernetes Service (AKS). Zie Azure Kubernetes Service (AKS) clusterknooppunt-OS-installatiekopieën automatisch upgraden om automatische upgrades van knooppuntinstallatiekopieën te configureren.

Upgrade-gebeurtenissen weergeven

Opmerking

Wanneer u een upgrade van uw cluster uitvoert, kunnen de volgende Kubernetes-gebeurtenissen plaatsvinden op de knooppunten:

  • Surge: Maak een surge-knooppunt.
  • Afvoer: verwijder pods uit het knooppunt. AKS biedt standaard 30 minuten om een knooppunt te ontruimen. U kunt de time-out voor afvoeren van vijf minuten tot 24 uur configureren.
  • Update: Het bijwerken van een knooppunt is geslaagd of mislukt.
  • Verwijderen: Een piekknooppunt verwijderen.

Gebruik de opdracht kubectl get met een veldselector om upgrader-gebeurtenissen van AKS in de standaardnaamruimte weer te geven.

kubectl get events --field-selector source=upgrader

In de volgende voorbeelduitvoer ziet u enkele van de voorgaande gebeurtenissen die tijdens een upgrade worden vermeld:

LAST SEEN   TYPE      REASON    OBJECT                                   MESSAGE
...
5m          Normal    Drain     node/aks-nodepool1-12345678-vmss000000   Draining node: aks-nodepool1-12345678-vmss000000
5m          Normal    Upgrade   node/aks-nodepool1-12345678-vmss000000   Deleting node aks-nodepool1-12345678-vmss000000 from API server
4m          Normal    Upgrade   node/aks-nodepool1-12345678-vmss000000   Successfully reimaged node: aks-nodepool1-12345678-vmss000000
4m          Normal    Upgrade   node/aks-nodepool1-12345678-vmss000000   Successfully upgraded node: aks-nodepool1-12345678-vmss000000
4m          Normal    Drain     node/aks-nodepool1-12345678-vmss000000   Draining node: aks-nodepool1-12345678-vmss000000
...

Een upgrade valideren met behulp van de Azure CLI

Controleer of de upgrade is geslaagd met behulp van de az aks show opdracht.

az aks show --resource-group myResourceGroup --name myAKSCluster --output table

In de volgende voorbeelduitvoer ziet u dat het AKS-cluster de kubernetes-doelversie uitvoert:

Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
myAKSCluster  westus2      myResourceGroup  1.34.10              1.34.10                   Succeeded            myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io

Een upgrade valideren met behulp van Azure PowerShell

Controleer of de upgrade is geslaagd met behulp van de Get-AzAksCluster cmdlet.

Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
  Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState

In de volgende voorbeelduitvoer ziet u dat het AKS-cluster de kubernetes-doelversie uitvoert:

Name             Location     KubernetesVersion     ProvisioningState
----             --------     -----------------     -----------------
myAKSCluster     westus2       1.34.10               Succeeded

Een upgrade valideren met behulp van de Azure-portal

  1. Navigeer in Azure Portal naar uw AKS-clusterresource.
  2. Controleer op de pagina Overzicht onder Essentials de Kubernetes-versie om te bevestigen dat de upgrade is geslaagd.

Het cluster verwijderen met behulp van de Azure CLI

Het cluster verwijderen met behulp van Azure PowerShell

Het cluster verwijderen met behulp van de Azure-portal

Aangezien deze zelfstudie het laatste deel van de reeks is, wilt u mogelijk uw AKS-cluster verwijderen om te voorkomen dat er Kosten in rekening worden gebracht voor Azure.

Verwijder de resourcegroep, containerservice en alle gerelateerde resources met behulp van de az group delete opdracht.

az group delete --name myResourceGroup --yes --no-wait

Verwijder de resourcegroep, containerservice en alle gerelateerde resources met behulp van de Remove-AzResourceGroup cmdlet.

Remove-AzResourceGroup -Name myResourceGroup
  1. Navigeer in Azure Portal naar uw AKS-clusterresource.
  2. Selecteer Verwijderen op de pagina Overzicht.
  3. Selecteer Verwijderen op de verwijderingsbevestigingspagina voor clustert.

Opmerking

Wanneer u het cluster verwijdert, wordt de Microsoft Entra-service-principal die door het AKS-cluster wordt gebruikt, niet verwijderd. Zie Overwegingen voor en verwijdering van AKS service-principal voor de stappen om de service-principal te verwijderen. Als u een beheerde identiteit hebt gebruikt, wordt de identiteit beheerd door het platform en hoeft u geen geheimen in te richten of te roteren.

Volgende stappen

In deze handleiding heb je Kubernetes bijgewerkt in een AKS-cluster. U hebt geleerd hoe u het volgende kunt doen:

  • Identificeer de huidige en beschikbare Kubernetes-versies.
  • Werk uw Kubernetes-knooppunten bij.
  • Valideer een geslaagde upgrade.

Zie het AKS-overzicht voor meer informatie over AKS. Zie de richtlijnen voor de AKS-oplossing voor hulp bij het maken van volledige oplossingen met AKS.