Uaktualnianie płaszczyzny sterowania klastra usługi Azure Kubernetes Service (AKS)

Klastry usługi Azure Kubernetes Service (AKS) składają się z dwóch głównych składników: płaszczyzny sterowania zarządzanej przez platformę Azure i pul węzłów, w których działają obciążenia. Ten artykuł koncentruje się na niezależnym uaktualnieniu płaszczyzny sterowania, co pozwala na wdrożenie nowych wersji platformy Kubernetes dla funkcji serwera interfejsu API przy jednoczesnym oddzielnym zarządzaniu uaktualnieniami puli węzłów.

Zanim rozpoczniesz

  • Jeśli używasz interfejsu wiersza polecenia platformy Azure, ten artykuł wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.34.1 lub nowszej. Użyj polecenia , az --version aby znaleźć wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • Jeśli używasz programu Azure PowerShell, ten artykuł wymaga programu Azure PowerShell w wersji 5.9.0 lub nowszej. Użyj polecenia cmdlet Get-InstalledModule -Name Az, aby znaleźć wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie programu Azure PowerShell.
  • Aby wykonać operacje uaktualniania, musisz mieć rolę współautora Azure Kubernetes Service lub równoważne uprawnienia.
  • Interfejsy API w wersji beta są domyślnie wyłączone po uaktualnieniu do Kubernetes w wersji 1.30 i 1.27 LTS.

Ostrzeżenie

Przed uaktualnieniem upewnij się, że masz wystarczający limit przydziału zasobów obliczeniowych. Jeśli limit przydziału jest niski, uaktualnienie może zakończyć się niepowodzeniem. Aby uzyskać więcej informacji, zobacz Zwiększanie limitów przydziału.

Omówienie typów uaktualnień usługi AKS

W poniższej tabeli przedstawiono trzy typy uaktualnień usługi AKS, podkreślając ich zakres i przypadki użycia:

Typ uaktualnienia Scope Przypadek użycia
Tylko płaszczyzna sterowania Serwer interfejsu API, etcd, menedżer kontrolerów, harmonogram Testowanie nowych interfejsów API platformy Kubernetes przed uaktualnieniem obciążeń
Pełny klaster Płaszczyzna sterowania i wszystkie pule węzłów Standardowe uaktualnienie, aby klaster był na bieżąco.
Tylko pula węzłów Określone pule węzłów Wdrażanie etapowe po uaktualnieniu płaszczyzny sterowania

Wskazówka

Uaktualnienie warstwy sterującej najpierw pozwala na zweryfikowanie zgodności z interfejsem API Kubernetes, zanim wpłynie na działające obciążenia. Aby zapoznać się ze strategiami uaktualniania puli węzłów, zobacz Konfigurowanie stopniowych uaktualnień.

Reguły uaktualniania wersji platformy Kubernetes

W przypadku uaktualniania obsługiwanego klastra AKS innego niż LTS nie można pominąć wersji pomocniczych platformy Kubernetes. Wszystkie uaktualnienia należy wykonać sekwencyjnie według pomocniczego numeru wersji. Na przykład aktualizacje między 1.28.x ->1.29.x lub 1.29.x ->1.30.x są dozwolone. 1.28.x ->1.30.x nie jest dozwolone.

Klaster LTS może pominąć wersje pomocnicze podczas przechodzenia do wyższej wersji LTS oferowanej przez usługę AKS, pod warunkiem, że uaktualnienie spełnia wymagania dotyczące niesymetryczności wersji i sprawdzanie poprawności. Aby uzyskać więcej informacji, zobacz Czy mogę pominąć wiele wersji usługi AKS podczas uaktualniania klastra?.

Począwszy od platformy Kubernetes 1.28, płaszczyzna sterowania może mieć maksymalnie trzy wersje pomocnicze przed pulami węzłów. Jeśli na przykład płaszczyzna sterowania wynosi 1.35.x, pule węzłów mogą mieć wartość 1.32.x, 1.33.x, 1.34.x lub 1.35.x. Aby uzyskać informacje o bieżących ograniczeniach, zobacz zasady niesymetryczności wersji usługi AKS.

Sprawdzanie dostępnych uaktualnień usługi AKS

Wskazówka

Aby być na bieżąco z najnowszymi wersjami i aktualizacjami usługi AKS, zobacz Monitor wersji usługi AKS.

Sprawdź dostępne wersje Kubernetes dla klastra AKS przy użyciu polecenia az aks get-upgrades.

az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name> --output table

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:

Name     ResourceGroup          MasterVersion    Upgrades
-------  ---------------        ---------------  --------------
default  <resource-group-name>  1.28.9           1.29.2, 1.29.4

Aktualizuj tylko płaszczyznę zarządzania usługi AKS

Ważna

Nie można wykonać uaktualnienia tylko na płaszczyźnie sterowania, gdy jest włączona funkcja automatycznego uaktualniania klastra . Automatyczne uaktualnianie klastra zawsze uaktualnia płaszczyznę sterowania i wszystkie pule węzłów razem.

  1. Uaktualnij płaszczyznę sterowania za pomocą polecenia az aks upgrade z flagą --control-plane-only. Poniższy przykład aktualizuje płaszczyznę sterowania do wersji Kubernetes 1.29.4:

    az aks upgrade \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --kubernetes-version 1.29.4 \
        --control-plane-only
    
  2. Sprawdź, czy uaktualnienie płaszczyzny sterowania zakończyło się pomyślnie za pomocą polecenia az aks show.

    az aks show --resource-group <resource-group-name> --name <cluster-name> --output table
    

    Następujące przykładowe dane wyjściowe pokazują, że płaszczyzna sterowania działa teraz w wersji 1.29.4:

    Name            Location    ResourceGroup          KubernetesVersion    ProvisioningState    Fqdn
    ------------    ----------  ---------------        -------------------  -------------------  ------------------------------------------------
    <cluster-name>  eastus      <resource-group-name>  1.29.4               Succeeded            <cluster-name>-dns-123abcd4.hcp.eastus.azmk8s.io
    
  3. Sprawdź, czy wersje puli węzłów pozostają niezmienione przy użyciu az aks nodepool list polecenia .

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name> --query "[].{Name:name,Version:orchestratorVersion}" --output table
    

    W danych wyjściowych pule węzłów powinny nadal wyświetlać poprzednią wersję rozwiązania Kubernetes.

Aktualizacja całego klastra AKS

Uwaga / Notatka

Podczas uaktualniania pełnego klastra usługa AKS najpierw uaktualnia płaszczyznę sterowania, a następnie uaktualnia każdą pulę węzłów sekwencyjnie. Aby uzyskać większą kontrolę nad uaktualnieniami puli węzłów, zobacz Konfigurowanie uaktualnień sekwencyjnych.

Uaktualnij pełny klaster (płaszczyznę sterowania i wszystkie pule węzłów) przy użyciu az aks upgrade polecenia . Poniższy przykład uaktualnia klaster do platformy Kubernetes w wersji 1.29.4:

az aks upgrade \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --kubernetes-version 1.29.4

Często zadawane pytania dotyczące uaktualniania płaszczyzny sterowania usługi AKS

Czy uaktualnienie tylko do płaszczyzny sterowania powoduje uaktualnienie pul węzłów?

Nie. Uaktualnienie tylko na płaszczyźnie sterowania nie zmienia pul węzłów. Automatyczne uaktualnianie klastra działa inaczej: nie obsługuje uaktualnień tylko płaszczyzny sterowania i uaktualnia płaszczyznę sterowania oraz wszystkie pule węzłów razem.

Czy mogę uaktualnić pule węzłów przed zaktualizowaniem płaszczyzny sterowania?

Nie. Wersja płaszczyzny sterowania musi być zawsze równa lub większa niż jakakolwiek wersja puli węzłów. Najpierw należy zaktualizować płaszczyznę sterowania.

Jak długo trwa aktualizacja warstwy sterowania?

Czas trwania uaktualniania zależy od stanu klastra i Azure warunków. Monitorowanie provisioningState przy użyciu programu az aks show lub Get-AzAksCluster. Uaktualnienie jest ukończone, gdy stan aprowizacji to Succeeded.

Rozwiązywanie problemów z uaktualnianiem płaszczyzny sterowania

Brak dostępnych uaktualnień

W przypadku nieobsługiwanego klastra użyj polecenia az aks get-upgrades , aby sprawdzić, czy usługa AKS oferuje kwalifikujący się obiekt docelowy obsługiwany. Jeśli element docelowy jest dostępny, wykonaj uaktualnienie pełnego klastra. Uaktualnienia tylko na płaszczyźnie sterowania nie są obsługiwane dla tej ścieżki odzyskiwania.

Jeśli żaden element docelowy nie jest dostępny, klaster może już znajdować się w najnowszej obsługiwanej wersji. Jeśli klaster korzysta z nieobsługiwanej wersji, utwórz nowy klaster z obsługiwaną wersją i przeprowadź migrację obciążeń.

Uaktualnianie nie powiodło się z powodu przestarzałych interfejsów API

Przed uaktualnieniem sprawdź przestarzałe interfejsy API przy użyciu narzędzi, takich jak kube-no-trouble (kubent):

kubent

Polecenie skanuje zasoby dostępne za pośrednictwem bieżącego kontekstu kubeconfig dla przestarzałych wersji interfejsu API Kubernetes. Dane wyjściowe grupuje wyniki według wersji platformy Kubernetes i identyfikuje każdy zasób, którego dotyczy problem, według KINDelementów , NAMESPACE, NAMEi API_VERSION. Przed uaktualnieniem zaktualizuj manifest źródłowy dla każdego zasobu wymienionego na liście, aby użyć obsługiwanej wersji interfejsu API.