Używanie pul węzłów maszyn wirtualnych w usłudze Azure Kubernetes Service (AKS)

W tym artykule dowiesz się więcej o nowym typie puli węzłów maszyn wirtualnych dla usługi AKS.

W przypadku pul węzłów maszyn wirtualnych, AKS bezpośrednio zarządza provisionowaniem i inicjalizacją każdego pojedynczego węzła. Dla puli węzłów Virtual Machine Scale Sets, AKS zarządza modelem Virtual Machine Scale Sets i wykorzystuje go do osiągnięcia spójności we wszystkich węzłach w puli węzłów. Pula węzłów maszyn wirtualnych umożliwia orkiestrację klastra za pomocą maszyn wirtualnych, które najlepiej pasują do indywidualnych obciążeń roboczych.

Korzystając z pul węzłów maszyn wirtualnych, usługa AKS bezpośrednio zarządza aprowizowaniem i uruchamianiem każdego węzła. W przypadku pul węzłów zestawów skalowania maszyn wirtualnych usługa AKS zarządza modelem zestawów skalowania maszyn wirtualnych i używa go do zapewnienia spójności we wszystkich węzłach w puli węzłów. Pule węzłów maszyn wirtualnych umożliwiają organizowanie klastra za pomocą maszyn wirtualnych, które najlepiej pasują do poszczególnych obciążeń.

Omówienie puli węzłów maszyn wirtualnych

Jak to działa

Pula węzłów składa się z zestawu maszyn wirtualnych, w których różne rozmiary maszyn wirtualnych obsługują różne typy obciążeń. Rozmiary tych maszyn wirtualnych, nazywane jako jednostki SKU, są kategoryzowane w różne rodziny, które są zoptymalizowane do określonych celów. Aby uzyskać więcej informacji, zobacz dokumentację jednostek SKU VM. Korzystając z pul węzłów maszyn wirtualnych, można wykonywać skalowanie ręczne z wieloma jednostkami SKU i skalowanie automatyczne z wieloma jednostkami SKU.

Aby włączyć skalowanie wielu rozmiarów maszyn wirtualnych, typ puli węzłów maszyn wirtualnych używa ScaleProfile zawierającego konfiguracje wskazujące, jak pula węzłów może być skalowana, w szczególności żądana lista rozmiarów maszyn wirtualnych i liczba maszyn w każdym rozmiarze. Profil skalowania ManualScaleProfile to profil, który określa pożądany rozmiar maszyny wirtualnej i całkowitą liczbę tego rodzaju w puli węzłów. Dozwolony jest tylko jeden rozmiar maszyny wirtualnej w ManualScaleProfile. Musisz utworzyć osobny ManualScaleProfile dla każdego rozmiaru maszyny wirtualnej w swojej puli węzłów. Podczas tworzenia nowej puli węzłów maszyn wirtualnych dodajesz początkowy profil ręcznego skalowania dla rozmiaru maszyny wirtualnej, przy użyciu pól vm-size oraz node-count. Można również dodać więcej profilów skalowania ręcznego zgodnie z instrukcjami dotyczącymi dodawania profilów skalowania ręcznego.

Aby włączyć skalowanie wielu rozmiarów maszyn wirtualnych, typ puli węzłów maszyn wirtualnych używa ScaleProfile typu zawierającego konfiguracje wskazujące sposób skalowania puli węzłów, w szczególności żądaną listę rozmiaru maszyny wirtualnej i liczbę każdego rozmiaru. Profil skalowania ManualScaleProfile to profil, który określa pożądany rozmiar maszyny wirtualnej i całkowitą liczbę tego rodzaju w puli węzłów. Obiekt ManualScaleProfile obsługuje tylko jeden rozmiar maszyny wirtualnej. Musisz utworzyć osobny ManualScaleProfile dla każdego rozmiaru maszyny wirtualnej w swojej puli węzłów. Podczas tworzenia nowej puli węzłów maszyn wirtualnych dodaj początkowy profil skalowania ręcznego dla rozmiaru maszyny wirtualnej przy użyciu vm-size pola i dołączania node-countelementu . Możesz również dodać więcej profilów skalowania ręcznego, postępując zgodnie z instrukcjami dotyczącymi dodawania profilów skalowania ręcznego.

Pule węzłów maszyn wirtualnych obsługują Auto również tryb, co oznacza, że pula węzłów może używać narzędzia do automatycznego skalowania klastra. Pula węzłów maszyn wirtualnych obsługuje maksymalnie pięć profilów skalowania łącznie w trybach ręcznego i automatycznego skalowania. Każdy profil określa jedną jednostkę SKU maszyny wirtualnej tej samej rodziny. Każda AutoScaleProfile może mieć własną minimalną i maksymalną liczbę węzłów w puli węzłów.

Uwaga

Podczas tworzenia nowej puli węzłów Virtual Machines można mieć wiele profilów skalowania i potrzebujesz co najmniej jednego profilu ręcznego lub automatycznego skalowania w puli węzłów.

Zalety pul węzłów maszyn wirtualnych

Zalety typu puli węzłów maszyny wirtualnej obejmują:

  • Flexibility: Specyfikacje węzłów mogą być aktualizowane, aby dostosować się do twojego bieżącego obciążenia pracą i potrzeb.
  • Dopasowana kontrola: Pojedyncze poziomy kontroli węzłów pozwalają na określanie i mieszanie węzłów o różnych specyfikacjach, aby znieść ograniczenia z jednego modelu i poprawić spójność.
  • Efektywność: Możesz zmniejszyć ślad węzłów w swoim klastrze, upraszczając wymagania operacyjne.

Pule węzłów maszyn wirtualnych obsługują maksymalnie pięć profilów skalowania na pulę węzłów, dzięki czemu obciążenia mogą używać wielu jednostek SKU maszyn wirtualnych z tej samej rodziny bez konieczności posiadania oddzielnej puli węzłów dla każdej jednostki SKU.

Porównanie środowisk skalowania obliczeń usługi AKS

Poniższa tabela podkreśla, jak pule węzłów maszyn wirtualnych porównują się ze standardowymi pulami węzłów Scale Set.

Typ puli węzłów Możliwości skalowania i zarządzania węzłami
Pula węzłów maszyn wirtualnych Możesz dodawać, usuwać lub aktualizować węzły w puli węzłów. Typy maszyn wirtualnych mogą być dowolną maszyną wirtualną tego samego typu rodziny (na przykład serii D, serii A itd.). Virtual Machines pule węzłów umożliwiają również ręczne i automatyczne skalowanie wielowersji.
Pula węzłów oparta na zestawie skalowania maszyn wirtualnych Możesz dodawać lub usuwać węzły o tym samym rozmiarze i typie w puli węzłów. W przypadku dodania nowego rozmiaru maszyny wirtualnej do klastra należy utworzyć nową pulę węzłów.

Które środowisko skalowania zasobów obliczeniowych należy wybrać w usłudze AKS?

W zależności od potrzeb związanych z obciążeniem należy wziąć pod uwagę wiele środowisk skalowania obliczeń. Zobacz przypadki użycia dla każdego z nich:

  • Automatyczne aprowizowanie węzłów: najlepsze rozwiązanie do automatycznego skalowania wielowersji i bardziej inteligentne, elastyczne wybieranie wersji maszyn wirtualnych (w tym wiele rodzin wersji).
  • Virtual Machines pul węzłów: najlepsze rozwiązanie w przypadku ręcznego skalowania wielowersji i obsługuje skalowanie automatyczne wielowersji. Wymaga wyboru określonej wersji maksymalnie pięciu rozmiarów na pulę węzłów.
  • Virtual Machine Scale Sets: obsługuje ręczne skalowanie pojedynczej wersji i skalowanie automatyczne w jednej wersji. Wymaga wyboru określonej wersji jednego rozmiaru na pulę węzłów.

ograniczenia puli węzłów Virtual Machines

  • Rozmiary maszyn wirtualnych określone w puli muszą być tego samego typu. Na przykład maszyny wirtualne GPU i inne niż GPU lub x86 i ARM64 nie mogą być w tej samej puli węzłów.
  • Aplikacja InifiniBand nie jest dostępna.
  • Migawka puli węzłów nie jest obsługiwana.
  • Wszystkie rozmiary maszyn wirtualnych wybrane w puli węzłów muszą pochodzić z podobnej rodziny maszyn wirtualnych. Na przykład, nie można mieszać typu maszyny wirtualnej N-Series z typem maszyny wirtualnej D-Series w tej samej puli węzłów.
  • Virtual Machines pule węzłów umożliwiają maksymalnie pięć profilów skalowania łącznie na pulę węzłów. Każdy profil ręcznego lub automatycznego skalowania określa jeden rozmiar maszyny wirtualnej z tej samej rodziny maszyn wirtualnych.
  • Nie są obsługiwane grupy węzłów Windows.
  • Strefy dostępności nie są obsługiwane. Jeśli obciążenie wymaga odporności strefy, użyj pul węzłów Virtual Machine Scale Sets.

Wymagania wstępne

  • Subskrypcja platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto.
  • Azure CLI w wersji 2.85.0 lub nowszej zainstalowanej i skonfigurowanej. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Aby uzyskać więcej informacji na temat instalowania lub uaktualniania Azure CLI, zobacz Install Azure CLI.
  • Ta funkcja wymaga platformy Kubernetes w wersji 1.27 lub nowszej. Aby uaktualnić wersję rozwiązania Kubernetes, zobacz Uaktualnianie klastra AKS.

Ważna

Wymaganie niestandardowej sieci wirtualnej: w przypadku wdrożenia puli węzłów maszyn wirtualnych w niestandardowej sieci wirtualnej klaster musi używać tożsamości zarządzanej przypisanej przez użytkownika z co najmniej uprawnieniami współautora sieci w podsieci docelowej. W przeciwieństwie do pul węzłów zestawu skalowania maszyn wirtualnych pule węzłów maszyn wirtualnych korzystają wyłącznie z tożsamości klastra dla operacji sprzężenia podsieci i nie używają tokenów innych firm. Klastry, które korzystają z tożsamości zarządzanej przypisanej przez system, nie przechodzą walidacji wstępnej podczas tworzenia lub aktualizowania puli węzłów maszyn wirtualnych w niestandardowej sieci wirtualnej, zwracając błąd InvalidParameter. Aby uzyskać więcej informacji na temat konfigurowania tożsamości zarządzanej przypisanej przez użytkownika dla klastra, zobacz Używanie tożsamości zarządzanej w usłudze AKS.

Utwórz klaster AKS z pulami węzłów maszyn wirtualnych

Uwaga

Tylko jeden rozmiar VM jest dozwolony w profilu skali, a maksymalny limit wynosi pięć profili skali VM ogólnie dla puli węzłów maszyn wirtualnych.

Utwórz klaster AKS z pulami węzłów maszyn wirtualnych, używając polecenia az aks create z ustawioną flagą --vm-set-type na "VirtualMachines".

W poniższym przykładzie tworzony jest klaster o nazwie myAKSCluster z pulą węzłów Virtual Machines zawierającą dwa węzły:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 2

Tworzenie klastra usługi AKS za pomocą pul węzłów usługi Virtual Machines w niestandardowej sieci wirtualnej

Podczas wdrażania pul węzłów Virtual Machines w niestandardowej sieci wirtualnej należy utworzyć tożsamość zarządzaną przypisaną przez użytkownika i przyznać jej uprawnienia Współautor sieci w podsieci docelowej przed utworzeniem klastra.

  1. Utwórz sieć wirtualną i podsieć.

    az network vnet create \
        --resource-group myResourceGroup \
        --name myVnet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    
  2. Pobierz identyfikator zasobu podsieci.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. Utwórz tożsamość zarządzaną przypisaną przez użytkownika.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. Pobierz główny identyfikator i identyfikator zasobu tożsamości zarządzanej.

    IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query principalId \
        --output tsv)
    
    IDENTITY_RESOURCE_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
  5. Przypisz rolę Współautor sieci do tożsamości zarządzanej w podsieci docelowej.

    az role assignment create \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID
    

    Rozpowszechnienie uprawnień przyznanych zarządzanej tożsamości klastra może potrwać do 60 minut.

  6. Przed utworzeniem klastra sprawdź, czy przypisanie roli istnieje w podsieci docelowej.

    az role assignment list \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID \
        --query "[].{Role:roleDefinitionName, Scope:scope}" \
        --output table
    

    Kontynuuj, gdy dane wyjściowe zawierają rolę Współautor sieci w zakresie podsieci docelowej.

  7. Utwórz klaster usługi AKS za pomocą pul węzłów maszyn wirtualnych w niestandardowej sieci wirtualnej.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 2 \
        --vnet-subnet-id $SUBNET_ID \
        --assign-identity $IDENTITY_RESOURCE_ID
    

Dodawanie puli węzłów maszyn wirtualnych do istniejącego klastra

Dodaj pulę węzłów maszyn wirtualnych do istniejącego klastra, używając polecenia az aks nodepool add z flagą --vm-set-type ustawioną na "VirtualMachines".

Przykład poniżej dodaje pulę węzłów Virtual Machines o nazwie myvmpool do klastra myAKSCluster. Pula węzłów tworzy plik ManualScaleProfile z ustawioną wartością --vm-sizesStandard_D4s_v3 i wartością --node-count 3:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 3

Dodaj ręczny profil skali do puli węzłów

Dodaj ręczny profil skalowania do puli węzłów za pomocą az aks nodepool manual-scale add z włączonym --vm-sizes oraz ustaw "Standard_D2s_v3" na 2 przy node-count.

Poniższy przykład dodaje ręczny profil skalowania do puli węzłów myvmpool w klastrze myAKSCluster. Pula węzłów zawiera dwa węzły z SKU maszyny wirtualnej o nazwie Standard_D2s_v3.

az aks nodepool manual-scale add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-sizes "Standard_D2s_v3" \
    --node-count 2

Aktualizowanie istniejącego profilu skalowania ręcznego

Zaktualizuj istniejący profil manualnego skalowania w puli węzłów, używając polecenia az aks nodepool manual-scale update z ustawioną flagą --vm-sizes na "Standard_D2s_v3".

Uwaga

Użyj parametru --current-vm-sizes, aby określić rozmiar istniejącej puli węzłów, którą chcesz zaktualizować. Możesz zaktualizować --vm-sizes i/lub --node-count. W przypadku korzystania z innych narzędzi lub interfejsów API REST należy przekazać pełne pole agentPoolProfiles.virtualMachinesProfile.scale podczas aktualizowania profilu skalowania puli węzłów.

Poniższy przykład aktualizuje konfigurację profilu skalowania ręcznego dla puli węzłów myvmpool w klastrze myAKSCluster. Polecenie aktualizuje liczbę węzłów do pięciu i zmienia jednostkę SKU maszyny wirtualnej z Standard_D4s_v3 na Standard_D8s_v3:

az aks nodepool manual-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D4s_v3" \
    --vm-sizes "Standard_D8s_v3" \
    --node-count 5

Usuń profil ręcznej skali

Usuń istniejący profil ręcznej skali za pomocą polecenia az aks nodepool manual-scale delete.

Uwaga

Parametr --current-vm-sizes określa rozmiar istniejącej puli węzłów do usunięcia. Podczas korzystania z innych narzędzi lub interfejsów API REST do aktualizacji profilu skalowania puli węzłów, przekaż pełne pole agentPoolProfiles.virtualMachinesProfile.scale.

Poniższy przykład usuwa profil skalowania ręcznego Standard_D8s_v3 dla SKU maszyny wirtualnej w puli węzłów myvmpool.

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Skalowanie automatyczne klastra z pulami węzłów Virtual Machines (wersja zapoznawcza)

Pule węzłów maszyn wirtualnych obsługują autoskalowanie klastra. Ta funkcja w wersji zapoznawczej wymaga Azure CLI wersji 2.85.0 lub nowszejVMsAgentPoolAutoscalePreview, aks-preview rozszerzenia i rejestracji flagi funkcji. Po spełnieniu tych wymagań wstępnych można użyć --enable-cluster-autoscaler podczas tworzenia klastra, dodając nową pulę węzłów lub aktualizując istniejącą ręczną pulę węzłów.

W przypadku korzystania z narzędzia do automatycznego skalowania klastra z pulami węzłów Virtual Machines zachowanie jest następujące:

Akcja autoskalatora Behavior
Zwiększanie skali Narzędzie do automatycznego skalowania odpowiada na oczekujące ciśnienie zasobnika i może zwiększyć liczbę węzłów dla wielu rozmiarów maszyn wirtualnych w puli węzłów.
Zmniejszanie skali Narzędzie do automatycznego skalowania wybiera węzeł na podstawie wykorzystania. Można skonfigurować scale-down-utilization-threshold tak, aby dostosować, gdy autoskalator wyzwala akcję skalowania w dół. Aby uzyskać więcej informacji, zobacz Autoscaler klastra.

Ograniczenia

  • Ta funkcja jest dostępna tylko w chmurze publicznej.
  • Węzły procesora GPU nie są obecnie obsługiwane.
  • Ta funkcja wymaga Azure CLI w wersji 2.85.0 lub nowszej aks-preview oraz rozszerzenia.

Instalowanie rozszerzenia aks-preview

Ważna

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

  • Zainstaluj lub zaktualizuj rozszerzenie Azure CLI za pomocą polecenia aks-preview lub az extension add.
    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview

Flaga funkcji Rejestrowanie

Zarejestruj flagę funkcji wersji próbnej VMsAgentPoolAutoscalePreview przy użyciu polecenia az feature register.

az feature register \
    --namespace Microsoft.ContainerService \
    --name VMsAgentPoolAutoscalePreview

Utworzenie stanu może potrwać Registeredkilka minut. Sprawdź stan rejestracji przy użyciu az feature show polecenia :

az feature show \
    --namespace Microsoft.ContainerService \
    --name VMsAgentPoolAutoscalePreview \
    --query properties.state \
    --output tsv

Gdy stan to Registered, odśwież rejestrację Microsoft.ContainerService dostawcy zasobów przy użyciu az provider register polecenia :

az provider register --namespace Microsoft.ContainerService

Tworzenie klastra usługi AKS z włączonymi pulami węzłów Virtual Machines i funkcją automatycznego skalowania klastra

  • Utwórz klaster AKS z pulami węzłów maszyn wirtualnych przy użyciu polecenia az aks create z flagą --vm-set-type ustawioną na "VirtualMachines" i flagą --enable-cluster-autoscaler.

Poniższy przykład tworzy klaster o nazwie myAKSCluster z pulą węzłów Virtual Machines, która używa rozmiaru Standard_D4s_v3węzła , minimalnej liczby węzłów 2 i maksymalnej liczby węzłów 5:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Dodawanie puli węzłów maszyn wirtualnych z włączonym automatycznym skalowaniem klastra do istniejącego klastra

  • Utwórz pulę węzłów maszyn wirtualnych przy użyciu polecenia az aks nodepool add z flagą --vm-set-type ustawioną na "VirtualMachines" oraz z użyciem flagi --enable-cluster-autoscaler.

W poniższym przykładzie dodano pulę węzłów maszyn wirtualnych myvmpool z włączoną funkcją automatycznego skalowania klastra do klastra o nazwie myAKSCluster przy użyciu rozmiaru maszyny wirtualnej "Standard_D4s_v3" oraz minimalną liczbę węzłów wynoszącą 2 i maksymalną liczbę 5:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Aktualizowanie ustawień automatycznego skalowania klastra dla puli węzłów Virtual Machines

Poniższy przykład aktualizuje ustawienia puli węzłów maszyn wirtualnych myvmpool w klastrze o nazwie myAKSCluster przy użyciu rozmiaru maszyny wirtualnej "Standard_D4s_v3":

az aks nodepool auto-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-node-vm-size "Standard_D4s_v3" \
    --min-count 3 \
    --max-count 7

Przełączanie profilów skalowania puli węzłów Virtual Machines z ręcznego na tryb skalowania automatycznego

Poniższy przykład aktualizuje pulę węzłów Virtual Machines myvmpool w klastrze o nazwie myAKSCluster konwertując wszystkie profile skalowania ręcznego na profile skalowania automatycznego z taką samą minimalną i maksymalną liczbą węzłów:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Wyłączanie narzędzia do automatycznego skalowania klastra w puli węzłów Virtual Machines

Można wyłączyć cluster autoscaler albo przełączyć wszystkie profile skalowania w puli węzłów maszyn wirtualnych z trybu Auto na tryb Manual.

Poniższy przykład wyłącza narzędzie do automatycznego skalowania klastra dla puli węzłów Virtual Machines myvmpool w klastrze o nazwie myAKSCluster. Przełącza wszystkie profile skalowania z Auto trybu na Manual tryb:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

Następne kroki

W tym artykule dowiesz się, jak korzystać z puli węzłów maszyn wirtualnych w AKS. Aby dowiedzieć się więcej o pule węzłów w AKS, zobacz Tworzenie pul węzłów.