Zelfstudie: Kubernetes bijwerken in AKS (Azure Kubernetes Service)

Als onderdeel van de levenscyclus van de toepassing en het cluster kunt u een upgrade uitvoeren naar de nieuwste beschikbare versie van Kubernetes. U kunt uw Azure Kubernetes Service -cluster (AKS) upgraden met behulp van de Azure CLI, Azure PowerShell of de Azure Portal.

In deze zelfstudie, deel zeven van zeven, leert u het volgende:

  • Huidige en beschikbare Kubernetes-versies identificeren.
  • Upgrade uw Kubernetes-knooppunten.
  • Valideer een geslaagde upgrade.

Voordat u begint

In eerdere zelfstudies hebt u een toepassing verpakt in een containerinstallatiekopieën en de containerinstallatiekopieën 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 deze zelfstudie wilt volgen, begint u met Zelfstudie 1: Een toepassing voorbereiden voor AKS.

  • Als u Azure CLI gebruikt, is voor deze zelfstudie Azure CLI versie 2.34.1 of hoger vereist. Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.
  • 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 bekijken. Als u PowerShell wilt installeren of upgraden, raadpleegt u De Azure PowerShell installeren.

Beschikbare clusterversies verkrijgen

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

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

    De volgende voorbeelduitvoer toont de huidige versie als 1.18.10 en vermeldt de beschikbare versies onder upgrades.

    {
      "agentPoolProfiles": null,
      "controlPlaneProfile": {
        "kubernetesVersion": "1.18.10",
        ...
        "upgrades": [
          {
            "isPreview": null,
            "kubernetesVersion": "1.19.1"
          },
          {
            "isPreview": null,
            "kubernetesVersion": "1.19.3"
          }
        ]
      },
      ...
    }
    

Een cluster upgraden

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

  • Hiermee voegt u een nieuw bufferknooppunt (of net zoveel knooppunten als geconfigureerd bij maximale piek) toe aan het cluster waarop de opgegeven Kubernetes-versie wordt uitgevoerd.
  • Cordons en drains een van de oude knooppunten om onderbrekingen van actieve toepassingen te minimaliseren. Als u de maximale piekspanning gebruikt, worden er net zoveel knooppunten tegelijk met het aantal opgegeven bufferknooppunten leeggemaakt.
  • Wanneer het oude knooppunt volledig leeg is, wordt het opnieuw geïnstalleerd om de nieuwe versie te ontvangen en wordt het het 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 de zonebalans behouden blijven.

Notitie

Als er geen patch is opgegeven, wordt het cluster automatisch bijgewerkt naar de meest recente GA-patch van de opgegeven secundaire versie. Als u bijvoorbeeld instelt --kubernetes-version1.21 op, resulteert dit in een upgrade van het cluster naar 1.21.9.

Wanneer u een upgrade uitvoert op secundaire aliasversie, wordt alleen een hogere secundaire versie ondersteund. Als u bijvoorbeeld een upgrade van 1.20.x naar uitvoert 1.20 , wordt er geen upgrade naar de meest recente GA-patch 1.20 geactiveerd, maar 1.21 wordt een upgrade naar de meest recente GA-patch 1.21 geactiveerd.

  • Voer een upgrade van uw cluster uit met behulp van de az aks upgrade opdracht .

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

    Notitie

    U kunt slechts één secundaire versie per keer bijwerken. U kunt bijvoorbeeld upgraden van 1.14.x naar 1.15.x, maar u kunt niet rechtstreeks upgraden van 1.14.x naar 1.16.x . Als u een upgrade wilt uitvoeren van 1.14.x naar 1.16.x, moet u eerst een upgrade uitvoeren van 1.14.x naar 1.15.x en vervolgens nog een upgrade uitvoeren van 1.15.x naar 1.16.x.

    In de volgende voorbeelduitvoer ziet u het resultaat van een upgrade naar 1.19.1. U ziet dat kubernetesVersion nu 1.19.1 weergeeft.

    {
      "agentPoolProfiles": [
        {
          "count": 3,
          "maxPods": 110,
          "name": "nodepool1",
          "osType": "Linux",
          "storageProfile": "ManagedDisks",
          "vmSize": "Standard_DS1_v2",
        }
      ],
      "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
      "enableRbac": false,
      "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.19.1",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
    }
    

De upgrade-gebeurtenissen weergeven

Notitie

Wanneer u uw cluster bijwerken, kunnen de volgende Kubernetes-gebeurtenissen plaatsvinden op de knooppunten:

  • Overspanning: maak een piekknooppunt.
  • Drain: haal pods uit het knooppunt. Elke pod heeft een time-out van vijf minuten om de verwijdering te voltooien.
  • Update: het bijwerken van een knooppunt is geslaagd of mislukt.
  • Verwijderen: een piekknooppunt verwijderen.
  • Bekijk de upgrade-gebeurtenissen in de standaardnaamruimten met behulp van de kubectl get events opdracht .

    kubectl get events 
    

    In de volgende voorbeelduitvoer ziet u enkele van de bovenstaande gebeurtenissen die tijdens een upgrade worden vermeld.

    ...
    default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
    ...
    default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
    ...
    

Een upgrade valideren

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

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

    De volgende voorbeelduitvoer laat zien dat KubernetesVersion 1.19.1 door het AKS-cluster wordt uitgevoerd:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  eastus      myResourceGroup  1.19.1               1.19.1                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
    

Het cluster verwijderen

Omdat deze zelfstudie het laatste deel van de reeks is, wilt u mogelijk uw AKS-cluster verwijderen. De Kubernetes-knooppunten worden uitgevoerd op virtuele Azure-machines en er worden nog steeds kosten in rekening gebracht, zelfs als u het cluster niet gebruikt.

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

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

Notitie

Wanneer u het cluster verwijdert, wordt de service-principal van Azure Active Directory (Azure AD) die door het AKS-cluster wordt gebruikt, niet verwijderd. Zie Overwegingen voor en verwijdering van AKS service-principal voor stappen voor het verwijderen van de service-principal. 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 zelfstudie hebt u een upgrade van Kubernetes in een AKS-cluster uitgevoerd. U hebt geleerd hoe u:

  • Huidige en beschikbare Kubernetes-versies identificeren.
  • Upgrade uw Kubernetes-knooppunten.
  • Valideer een geslaagde upgrade.

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