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.

Aby uaktualnić klaster usługi AKS, musisz mieć rolę współautora Azure Kubernetes Service lub równoważne uprawnienia.

Przed uaktualnieniem przejrzyj informacje o wersji usługi AKS pod kątem zmian powodujących niezgodność i przestarzałych interfejsów API. Zweryfikuj również budżety zakłóceń podów (PDB) dla obciążenia, dostępny limit zasobów obliczeniowych oraz pojemność adresów IP w podsieci dla węzłów nadmiarowych. Aby uzyskać więcej informacji, zobacz Opcje uaktualniania i zalecenia dotyczące klastrów usługi AKS.

Uzyskiwanie dostępnych wersji klastra przy użyciu Azure CLI

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ę klastra i wyświetla listę nowszych wersji w obszarze upgrades:

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

Uzyskiwanie dostępnych wersji klastra przy użyciu Azure PowerShell

  1. Przed uaktualnieniem sprawdź bieżącą wersję klastra Kubernetes i jego region za pomocą polecenia cmdlet Get-AzAksCluster.

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

    Następujące przykładowe dane wyjściowe pokazują bieżącą wersję i lokalizację klastra:

    Name              CurrentKubernetesVersion      Location
    ----              ------------------------      --------
    myAKSCluster      1.33.7                        westus2
    
  2. Wyświetl listę wersji platformy Kubernetes dostępnych w regionie, w którym znajduje się klaster przy użyciu Get-AzAksVersion polecenia cmdlet .

    Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersion
    

    W poniższych przykładowych danych wyjściowych przedstawiono wersje regionalne w obszarze OrchestratorVersion:

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

    Aby zidentyfikować potencjalne cele uaktualniania, porównaj wersje nowsze niż bieżąca wersja klastra z regułami uaktualniania wersji platformy Kubernetes. To polecenie wyświetla informacje o dostępności regionalnej i nie weryfikuje ścieżki aktualizacji dla określonego klastra.

Uzyskiwanie dostępnych wersji klastra przy użyciu portalu Azure

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do zasobu w swoim klastrze AKS.

  3. Z menu usługi w obszarze Ustawienia wybierz pozycję Uaktualnienia.

  4. W obszarze Wersja rozwiązania Kubernetes wybierz pozycję Uaktualnij wersję.

    Zrzut ekranu przedstawiający opcję Uaktualnij wersję w witrynie Azure Portal.

  5. Na stronie Uaktualnianie wersji rozwiązania Kubernetes wybierz listę rozwijaną Wersja rozwiązania Kubernetes , aby wyświetlić dostępne wersje rozwiązania Kubernetes na potrzeby uaktualnienia.

    Zrzut ekranu przedstawiający ekran z wersją uaktualnienia z dostępnymi wersjami do uaktualnienia.

Jeśli nie są dostępne żadne uaktualnienia, klaster może już znajdować się w najnowszej dostępnej wersji lub wersja klastra może znajdować się poza oknem pomocy technicznej. Jeśli wersja nie jest obsługiwana, a usługa AKS nie oferuje aktualizacji naprawczej, utwórz nowy klaster z obsługiwaną wersją Kubernetes i przenieś swoje obciążenia. Aby uzyskać więcej informacji, zobacz Zasady pomocy technicznej usługi AKS dla wersji platformy Kubernetes.

Proces uaktualniania klastra usługi 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. Konfigurowanie automatycznych uaktualnień klastra w celu zachowania klastra w obsługiwanej wersji rozwiązania Kubernetes.

Ręczne uaktualnianie klastra przy użyciu Azure CLI

Uaktualnij klaster przy użyciu az aks upgrade polecenia . W tym przykładzie klaster jest uaktualniany do wersji 1.34.10:

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

Uwaga

Obsługiwane klastry inne niż LTS muszą być aktualizowane kolejno do każdej następnej wersji podrzędnej. Na przykład, aby uaktualnić z wersji 1.33.x do wersji 1.35.x, najpierw uaktualnij do wersji 1.34.x. Klaster LTS może pominąć wersje podrzędne podczas przechodzenia na nowszą wersję LTS oferowaną przez usługę AKS, jeśli uaktualnienie spełnia wymagania dotyczące rozbieżności wersji oraz przejdzie kontrole walidacyjne. Aby uzyskać więcej informacji, zobacz Reguły uaktualniania wersji platformy Kubernetes.

Poniższe przykładowe dane wyjściowe pokazują wynik uaktualnienia. Wartość kubernetesVersion jest teraz zgodna z wersją określoną w przykładowym poleceniu:

{
  ...
  "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"
  ...
}

Ręczne uaktualnianie klastra przy użyciu Azure PowerShell

Uaktualnij klaster za pomocą polecenia cmdlet Set-AzAksCluster. W tym przykładzie klaster jest uaktualniany do wersji 1.34.10:

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

Uwaga

Obsługiwane klastry inne niż LTS muszą być aktualizowane sekwencyjnie, po jednej wersji minor. Na przykład, aby uaktualnić z wersji 1.33.x do wersji 1.35.x, najpierw uaktualnij do wersji 1.34.x. Klaster LTS może pominąć wersje podrzędne podczas przechodzenia na wyższą wersję LTS udostępnianą przez usługę AKS, jeśli uaktualnienie spełnia wymagania dotyczące rozbieżności wersji oraz kontrole poprawności. Aby uzyskać więcej informacji, zobacz Reguły uaktualniania wersji platformy Kubernetes.

Poniższe przykładowe dane wyjściowe pokazują wynik uaktualnienia. Wartość KubernetesVersion jest teraz zgodna z wersją określoną w przykładowym poleceniu cmdlet:

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

Ręczne uaktualnianie klastra przy użyciu portalu Azure

  1. W portalu Azure przejdź do zasobu klastra AKS.

  2. Z menu usługi w obszarze Ustawienia wybierz pozycję Uaktualnienia.

  3. W obszarze Wersja rozwiązania Kubernetes wybierz pozycję Uaktualnij wersję.

    Zrzut ekranu przedstawiający opcję Uaktualnij wersję w witrynie Azure Portal.

  4. Na stronie Uaktualnianie wersji rozwiązania Kubernetes wybierz listę rozwijaną Wersja rozwiązania Kubernetes , aby wyświetlić dostępne wersje rozwiązania Kubernetes na potrzeby uaktualnienia.

    Zrzut ekranu przedstawiający ekran z wersją uaktualnienia z dostępnymi wersjami do uaktualnienia.

  5. Wybierz wersję platformy Kubernetes, do której chcesz przeprowadzić uaktualnienie, a następnie wybierz pozycję Zapisz.

Czas trwania uaktualnienia zależy od czynników, takich jak liczba węzłów, ustawienia wzrostu, ograniczenia zakłóceń obciążenia, limit czasu opróżniania i czas trwania moczenia węzła. Domyślny limit czasu opróżniania wynosi 30 minut na węzeł i można go skonfigurować od pięciu minut do 24 godzin. Czas trwania moczenia węzła może dodać zero do 30 minut na węzeł. Aby uzyskać więcej informacji, zobacz Dostosowywanie wzrostu puli węzłów i niedostępnych ustawień.

Konfigurowanie automatycznych uaktualnień klastra przy użyciu Azure CLI

Konfigurowanie automatycznych uaktualnień klastra przy użyciu Azure PowerShell

Konfigurowanie automatycznych uaktualnień klastra przy użyciu portalu Azure

Automatyczne klastry AKS używają kanału stable i nie trzeba konfigurować żadnego kanału. W przypadku klastrów AKS w warstwie Standard wybierz kanał zgodnie z zasadami obsługi wersji. Kanały stable i rapid aktualizują pomniejsze wersje Kubernetes i pomagają utrzymać klaster w obsługiwanym zakresie wersji. Kanał patch instaluje tylko poprawki dla bieżącej wersji podrzędnej i nie aktualizuje klastra do nowszej wersji podrzędnej.

W klastrze AKS w warstwie Standard ustaw kanał automatycznej aktualizacji za pomocą polecenia az aks update. W poniższym przykładzie użyto kanału stable :

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

W klastrze AKS w warstwie Standard ustaw kanał automatycznych uaktualnień za pomocą polecenia cmdlet Set-AzAksCluster. W poniższym przykładzie użyto kanału Stable :

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
  1. W portalu Azure przejdź do zasobu klastra AKS.

  2. Z menu usługi w obszarze Ustawienia wybierz pozycję Uaktualnienia.

  3. W obszarze Wersja rozwiązania Kubernetes wybierz pozycję Uaktualnij wersję.

    Zrzut ekranu przedstawiający opcję Uaktualnij wersję w witrynie Azure Portal.

  4. W przypadku klastra usługi AKS w warstwie Standardowa na stronie Uaktualnianie wersji rozwiązania Kubernetes wybierz listę rozwijaną Automatyczne uaktualnianie , wybierz pozycję Włączone ze stabilną, a następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający stronę Uaktualnianie wersji rozwiązania Kubernetes z opcjami kanału automatycznego uaktualniania.

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

Uaktualnianie obrazów węzłów

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 uaktualnienia

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. Usługa AKS umożliwia domyślnie opróżnianie węzła przez 30 minut. Limit czasu opróżniania można skonfigurować z pięciu minut do 24 godzin.
  • Aktualizacja: aktualizacja węzła zakończyła się powodzeniem lub niepowodzeniem.
  • Usuń: usuń węzeł przeciążeniowy.

kubectl get Użyj polecenia z selektorem pól, aby wyświetlić zdarzenia uaktualniania usługi AKS w domyślnej przestrzeni nazw.

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-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
...

Weryfikowanie uaktualnienia przy użyciu Azure CLI

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 docelową wersję rozwiązania Kubernetes:

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

Weryfikowanie uaktualnienia przy użyciu Azure PowerShell

Potwierdź, że uaktualnienie zakończyło się pomyślnie, za pomocą polecenia cmdlet Get-AzAksCluster.

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

Następujące przykładowe dane wyjściowe pokazują, że klaster usługi AKS uruchamia docelową wersję rozwiązania Kubernetes:

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

Weryfikowanie uaktualnienia przy użyciu portalu Azure

  1. W portalu Azure przejdź do zasobu klastra AKS.
  2. Na stronie Przegląd w obszarze Podstawy sprawdź wersję rozwiązania Kubernetes , aby potwierdzić pomyślne uaktualnienie.

Usuwanie klastra przy użyciu Azure CLI

Usuwanie klastra przy użyciu Azure PowerShell

Usuwanie klastra przy użyciu portalu Azure

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

Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby przy użyciu Remove-AzResourceGroup polecenia cmdlet .

Remove-AzResourceGroup -Name myResourceGroup
  1. W portalu Azure przejdź do zasobu klastra AKS.
  2. Na stronie Przegląd wybierz pozycję Usuń.
  3. Na stronie potwierdzenia usunięcia klastra, wybierz pozycję Usuń.

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.
  • Zaktualizuj 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.