Przeczytaj w języku angielskim

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 zaktualizujesz klaster AKS. Nauczysz się, jak:

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

Zanim rozpoczniesz

W poprzednich samouczkach spakowałeś aplikację do obrazu kontenerowego i przekazałeś obraz kontenerowy do usługi Azure Container Registry (ACR). Utworzyłeś również klaster AKS i wdrożyłeś w nim 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 AKS wykonuje następujące czynności:

  • Dodaje nowy węzeł buforowy (lub taką liczbę węzłów, jak określono w maksymalnym wzroście) do klastra, który ma uruchomioną określoną wersję Kubernetes.
  • Zakordonować i opróżnić zasoby jednego ze starych węzłów, aby zminimalizować zakłócenia działających aplikacji. Jeśli używasz maksymalnego limitu, ogranicza i opróżnia tyle węzłów jednocześnie, ile wynosi określona liczba węzłów buforowych.
  • Gdy stary węzeł zostanie w pełni opróżniony, zostanie ponownie zainstalowany, aby zainstalować nową wersję i staje się węzłem buforowym dla następnego 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ównowagę stref.

Uwaga

Jeśli nie określono poprawki, klaster automatycznie uaktualnia do najnowszej ogólnie dostępnej poprawki określonej wersji podrzędnej. Na przykład ustawienie --kubernetes-version na 1.28 powoduje 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 kubernetesVersionwersja 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.westus2.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.29.2",
      "location": "westus2",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
      ...
    }
    

Konfigurowanie automatycznych uaktualnień klastra

  • Ustaw kanał automatycznego uaktualniania na klastrze, używając polecenia az aks update z parametrem --auto-upgrade-channel ustawionym 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).

Aktualizacja obrazów węzłów AKS

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 aktualizacje obrazów systemów operacyjnych węzłów klastra usługi Azure Kubernetes Service (AKS), zobacz Automatyczne aktualizacje obrazów systemów operacyjnych węzłów usługi Azure Kubernetes Service (AKS).

Wyświetl zdarzenia aktualizacji

Uwaga

Podczas aktualizacji klastra w węzłach mogą wystąpić następujące zdarzenia Kubernetes:

  • Surge: utwórz węzeł Surge.
  • 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ł przeciążeniowy.
  • Wyświetl zdarzenia uaktualniania w domyślnych przestrzeniach nazw przy użyciu polecenia kubectl get events.

    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 działa na wersji KubernetesVersion 1.27.3:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  westus2      myResourceGroup  1.29.2               1.29.2                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.westus2.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ść ta jest zarządzana przez platformę i nie wymaga od Ciebie zarządzania ani obrotu żadnymi tajemnicami.

Następne kroki

W tym samouczku zaktualizowałeś Kubernetes w klastrze AKS. Nauczyłeś się, jak:

  • Zidentyfikuj bieżące i dostępne wersje platformy Kubernetes.
  • Aktualizuj 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.


Dodatkowe zasoby

Szkolenie

Moduł

Stosowanie uaktualnień klastra i poprawek zabezpieczeń za pomocą usługi Azure Kubernetes Service - Training

Zastosuj najnowsze uaktualnienia i poprawki do klastrów usługi Azure Kubernetes Service.

Certyfikacja

Certyfikat firmy Microsoft: Współpracownik administratora platformy Azure - Certifications

Zaprezentuj kluczowe umiejętności do konfigurowania, zabezpieczania i administrowania kluczowymi funkcjami zawodowymi na platformie Microsoft Azure oraz zarządzania nimi.