Udostępnij za pośrednictwem


Samouczek — uaktualnianie klastra usługi Azure Kubernetes Service (AKS)

W ramach cyklu życia aplikacji i klastra możesz przeprowadzić uaktualnienie do najnowszej dostępnej wersji rozwiązania Kubernetes. Klaster usługi Azure Kubernetes Service (AKS) można uaktualnić przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.

W tym samouczku, część siedem z siedmiu, uaktualniasz klaster usługi AKS. Dowiedz się, jak odbywa się:

  • Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
  • Uaktualnij węzły kubernetes.
  • Zweryfikuj pomyślne uaktualnienie.

Zanim rozpoczniesz

W poprzednich samouczkach spakujesz aplikację do obrazu kontenera i przekazano obraz kontenera do usługi Azure Container Registry (ACR). Utworzono również klaster usługi AKS i wdrożono w niej aplikację. Jeśli te kroki nie zostały wykonane i chcesz wykonać te czynności, zacznij od samouczka 1 — Przygotowywanie aplikacji dla usługi AKS.

W przypadku korzystania z interfejsu wiersza polecenia platformy Azure ten samouczek wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.34.1 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

W przypadku korzystania z programu Azure PowerShell ten samouczek wymaga programu Azure PowerShell w wersji 5.9.0 lub nowszej. Uruchom polecenie Get-InstalledModule -Name Az, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie programu Azure PowerShell.

Pobieranie dostępnych wersji klastrów

  • Przed uaktualnieniem sprawdź, które wersje platformy Kubernetes są dostępne dla klastra az aks get-upgrades przy użyciu polecenia .

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

    Poniższe przykładowe dane wyjściowe pokazują bieżącą wersję jako 1.28.9 i wyświetla listę dostępnych wersji w obszarze upgrades:

      {
        "agentPoolProfiles": null,
        "controlPlaneProfile": {
          "kubernetesVersion": "1.28.9",
          ...
          "upgrades": [
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.4"
            },
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.2"
            }
          ]
        },
        ...
      }
    

Uaktualnianie klastra AKS

Węzły usługi AKS są starannie kordonowane i opróżniane, aby zminimalizować wszelkie potencjalne zakłócenia działania aplikacji. Podczas tego procesu usługa AKS wykonuje następujące czynności:

  • Dodaje nowy węzeł buforu (lub dowolną liczbę węzłów skonfigurowanych w maksymalnym wzroście) do klastra z uruchomioną określoną wersją platformy Kubernetes.
  • Cordons i opróżnia jeden ze starych węzłów, aby zminimalizować zakłócenia działania aplikacji. Jeśli używasz maksymalnego wzrostu, kordony i opróżniają tyle węzłów w tym samym czasie co określona liczba węzłów buforu.
  • Gdy stary węzeł zostanie w pełni opróżniony, zostanie ponownie wyświetlony obraz, aby otrzymać nową wersję i staje się węzłem buforu dla następującego węzła, który ma zostać uaktualniony.
  • Ten proces powtarza się do momentu uaktualnienia wszystkich węzłów w klastrze.
  • Na końcu procesu ostatni węzeł buforu jest usuwany, zachowując istniejącą liczbę węzłów agenta i równoważenie strefy.

Uwaga

Jeśli nie określono poprawki, klaster automatycznie uaktualnia do najnowszej ogólnie dostępnej poprawki określonej wersji pomocniczej. Na przykład ustawienie powoduje --kubernetes-version 1.28 uaktualnienie klastra do 1.28.9.

Aby uzyskać więcej informacji, zobacz Obsługiwane uaktualnienia wersji pomocniczej Kubernetes w usłudze AKS.

Możesz ręcznie uaktualnić klaster lub skonfigurować automatyczne uaktualnienia klastra. Zalecamy skonfigurowanie automatycznych uaktualnień klastra w celu zapewnienia, że klaster jest zawsze uruchomiony w najnowszej wersji rozwiązania Kubernetes.

Ręczne uaktualnianie klastra

  • Uaktualnij klaster przy użyciu az aks upgrade polecenia .

    az aks upgrade \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --kubernetes-version KUBERNETES_VERSION
    
  • Zostanie wyświetlony monit o potwierdzenie operacji uaktualniania i potwierdzenie, że chcesz uaktualnić płaszczyznę sterowania i wszystkie pule węzłów do wybranej wersji rozwiązania Kubernetes:

     Are you sure you want to perform this operation? (y/N): y
    Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
    

    Uwaga

    Jednocześnie można uaktualnić tylko jedną wersję pomocniczą. Na przykład można uaktualnić z wersji 1.14.x do wersji 1.15.x, ale nie można przeprowadzić uaktualnienia z wersji 1.14.x do wersji 1.16.x bezpośrednio. Aby uaktualnić z wersji 1.14.x do wersji 1.16.x, należy najpierw uaktualnić z wersji 1.14.x do wersji 1.15.x, a następnie wykonać kolejne uaktualnienie z wersji 1.15.x do wersji 1.16.x.

    Poniższe przykładowe dane wyjściowe pokazują wynik uaktualnienia do wersji 1.29.2. Zwróć uwagę, że teraz jest wyświetlana kubernetesVersion wersja 1.29.2:

    {
      ...
      "agentPoolProfiles": [
        {
          ...
          "count": 3,
          "currentOrchestratorVersion": "1.29.2",
          "maxPods": 110,
          "name": "nodepool1",
          "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0",
          "orchestratorVersion": "1.29.2",
          "osType": "Linux",
          "upgradeSettings": {
            "drainTimeoutInMinutes": null,
            "maxSurge": "10%",
            "nodeSoakDurationInMinutes": null,
            "undrainableNodeBehavior": null
          },
          "vmSize": "Standard_DS2_v2",
          ...
        }
      ],
      ...
      "currentKubernetesVersion": "1.29.2",
      "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.29.2",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
      ...
    }
    

Konfigurowanie automatycznych uaktualnień klastra

  • Ustaw kanał automatycznego uaktualniania w klastrze przy użyciu az aks update polecenia z parametrem ustawionym --auto-upgrade-channel na patch.

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

Aby uzyskać więcej informacji, zobacz Automatyczne uaktualnianie klastra usługi Azure Kubernetes Service (AKS).

Uaktualnianie obrazów węzłów usługi AKS

Usługa AKS regularnie udostępnia nowe obrazy węzłów. Obrazy węzłów systemu Linux są aktualizowane co tydzień, a obrazy węzłów systemu Windows są aktualizowane co miesiąc. Zalecamy częste uaktualnianie obrazów węzłów w celu korzystania z najnowszych funkcji i aktualizacji zabezpieczeń usługi AKS. Aby uzyskać więcej informacji, zobacz Uaktualnianie obrazów węzłów w usłudze Azure Kubernetes Service (AKS). Aby skonfigurować automatyczne uaktualnienia obrazów węzłów, zobacz Automatyczne uaktualnianie obrazów systemu operacyjnego węzła klastra usługi Azure Kubernetes Service (AKS).

Wyświetlanie zdarzeń uaktualniania

Uwaga

Podczas uaktualniania klastra na węzłach mogą wystąpić następujące zdarzenia kubernetes:

  • Wzrost: utwórz węzeł skokowy.
  • Opróżnianie: eksmitują zasobniki z węzła. Każdy zasobnik ma pięciominutowy limit czasu umożliwiający ukończenie eksmisji.
  • Aktualizacja: aktualizacja węzła zakończyła się powodzeniem lub niepowodzeniem.
  • Usuń: usuń węzeł skokowy.
  • Wyświetl zdarzenia uaktualniania w domyślnych przestrzeniach nazw przy użyciu kubectl get events polecenia .

    kubectl get events --field-selector source=upgrader
    

    W poniższych przykładowych danych wyjściowych przedstawiono niektóre z powyższych zdarzeń wymienionych podczas uaktualniania:

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

Weryfikowanie uaktualnienia

  • Upewnij się, że uaktualnienie zakończyło się pomyślnie, używając az aks show polecenia .

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

    Następujące przykładowe dane wyjściowe pokazują, że klaster usługi AKS uruchamia platformę KubernetesVersion 1.27.3:

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

Usuwanie klastra

Ponieważ ten samouczek jest ostatnią częścią serii, możesz usunąć klaster usługi AKS, aby uniknąć naliczania opłat za platformę Azure.

  • Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby przy użyciu az group delete polecenia .

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

Uwaga

Po usunięciu klastra jednostka usługi Microsoft Entra używana przez klaster usługi AKS nie zostanie usunięta. Aby sprawdzić, jak usunąć jednostkę usługi, zobacz AKS service principal considerations and deletion (Uwagi dotyczące jednostki usługi AKS i jej usuwanie). Jeśli użyto tożsamości zarządzanej, tożsamość jest zarządzana przez platformę i nie wymaga aprowizacji ani rotacji żadnych wpisów tajnych.

Następne kroki

W tym samouczku uaktualniane jest rozwiązanie Kubernetes w klastrze AKS. W tym samouczku omówiono:

  • Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
  • Uaktualnij węzły kubernetes.
  • Zweryfikuj pomyślne uaktualnienie.

Aby uzyskać więcej informacji na temat usługi AKS, zobacz Omówienie usługi AKS. Aby uzyskać wskazówki dotyczące tworzenia pełnych rozwiązań za pomocą usługi AKS, zobacz wskazówki dotyczące rozwiązania AKS.