Korzystanie z niestandardowych zasad skalowania w usłudze Azure Virtual Machine Scale Sets

Wdrożenie zestawu skalowania maszyn wirtualnych można skalować w poziomie lub skalować w poziomie na podstawie tablicy metryk, w tym metryk niestandardowych zdefiniowanych przez platformę i użytkownika. Podczas gdy skalowanie w poziomie tworzy nowe maszyny wirtualne na podstawie modelu zestawu skalowania, skalowanie w pionie wpływa na uruchomione maszyny wirtualne, które mogą mieć różne konfiguracje i/lub funkcje w miarę rozwoju obciążenia zestawu skalowania.

Funkcja zasad skalowania w poziomie zapewnia użytkownikom sposób konfigurowania kolejności skalowania maszyn wirtualnych w ramach trzech konfiguracji skalowanych w poziomie:

  1. Domyślny
  2. Najnowsza maszyna wirtualna
  3. Najstarsza maszyna wirtualna

Domyślne zasady skalowania w poziomie

Elastyczna aranżacja

Dzięki tym zasadom maszyny wirtualne są skalowane w poziomie po równoważeniu w różnych strefach dostępności (jeśli zestaw skalowania jest w konfiguracji strefowej) i najstarszą maszyną wirtualną zgodnie createdTime ze skalowaniem w pierwszej kolejności. Równoważenie w domenie błędów nie jest dostępne w zasadach domyślnych z elastycznym trybem aranżacji.

Jednolita aranżacja

Domyślnie zestaw skalowania maszyn wirtualnych stosuje te zasady w celu określenia, w których wystąpieniach będą skalowane. W przypadku zasad domyślnych maszyny wirtualne są wybierane do skalowania w następującej kolejności:

  1. Równoważenie maszyn wirtualnych w różnych strefach dostępności (jeśli zestaw skalowania jest wdrożony w konfiguracji strefowej)
  2. Równoważenie maszyn wirtualnych między domenami błędów (najlepsze wysiłki)
  3. Usuwanie maszyny wirtualnej z najwyższym identyfikatorem wystąpienia

Użytkownicy nie muszą określać zasad skalowania w poziomie, jeśli chcą po prostu przestrzegać domyślnej kolejności.

Równoważenie między strefami dostępności lub domenami błędów nie przenosi wystąpień między strefami dostępności ani domenami błędów. Równoważenie jest osiągane przez usunięcie maszyn wirtualnych ze stref dostępności niezrównoważonej lub domen błędów do momentu zrównoważenia dystrybucji maszyn wirtualnych.

Najnowsze zasady skalowania maszyn wirtualnych

Te zasady spowodują usunięcie najnowszej lub ostatnio utworzonej maszyny wirtualnej w zestawie skalowania po równoważeniu maszyn wirtualnych w różnych strefach dostępności (w przypadku wdrożeń strefowych). Włączenie tych zasad wymaga zmiany konfiguracji w modelu zestawu skalowania maszyn wirtualnych.

Zasady skalowania maszyn wirtualnych najstarszych maszyn wirtualnych

Te zasady spowodują usunięcie najstarszej utworzonej maszyny wirtualnej w zestawie skalowania po równoważeniu maszyn wirtualnych w różnych strefach dostępności (w przypadku wdrożeń strefowych). Włączenie tych zasad wymaga zmiany konfiguracji w modelu zestawu skalowania maszyn wirtualnych.

Włączanie zasad skalowania w poziomie

Zasady skalowania w poziomie są definiowane w modelu zestawu skalowania maszyn wirtualnych. Jak wspomniano w poprzednich sekcjach, wymagana jest definicja zasad skalowania w poziomie w przypadku korzystania z zasad "NewestVM" i "OldestVM". Zestaw skalowania maszyn wirtualnych automatycznie użyje zasad skalowania domyślnego, jeśli w modelu zestawu skalowania nie ma definicji zasad skalowania w poziomie.

Zasady skalowania w poziomie można zdefiniować w modelu zestawu skalowania maszyn wirtualnych w następujący sposób:

Azure Portal

Poniższe kroki definiują zasady skalowania w poziomie podczas tworzenia nowego zestawu skalowania.

  1. Przejdź do pozycji Zestawy skalowania maszyn wirtualnych.
  2. Wybierz pozycję + Dodaj , aby utworzyć nowy zestaw skalowania.
  3. Przejdź do karty Skalowanie .
  4. Znajdź sekcję Zasady skalowania w poziomie.
  5. Wybierz zasady skalowania z listy rozwijanej.
  6. Po zakończeniu tworzenia nowego zestawu skalowania wybierz przycisk Przejrzyj i utwórz .

Używanie interfejsu API

Wykonaj put w zestawie skalowania maszyn wirtualnych przy użyciu interfejsu API 2019-03-01:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["OldestVM"]  
        } 
    }    
} 

Azure PowerShell

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure będą domyślnie ustawiać tryb elastycznej orkiestracji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, zobacz Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia usługi VMSS — Microsoft Community Hub

Utwórz grupę zasobów, a następnie utwórz nowy zestaw skalowania z zestawem zasad skalowania jako Najstarsza maszyna wirtualna.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "<VMSS location>"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "<VMSS location>" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -ScaleInPolicy “OldestVM”

Interfejs wiersza polecenia platformy Azure

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure będą domyślnie ustawiać tryb elastycznej orkiestracji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, zobacz Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia usługi VMSS — Microsoft Community Hub

W poniższym przykładzie dodano zasady skalowania w poziomie podczas tworzenia nowego zestawu skalowania. Najpierw utwórz grupę zasobów, a następnie utwórz nowy zestaw skalowania z zasadami skalowania w formacie OldestVM.

az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --orchestration-mode flexible \
  --image Ubuntu2204 \
  --admin-username <azureuser> \
  --generate-ssh-keys \
  --scale-in-policy OldestVM

Korzystanie z szablonu

W szablonie w obszarze "properties" dodaj scaleInPolicy właściwość:

"scaleInPolicy": {  
      "rules": ["OldestVM"]  
}

Te bloki kodu określają, że zestaw skalowania maszyn wirtualnych usunie najstarszą maszynę wirtualną w zestawie skalowania ze zrównoważonym strefą po wyzwoleniu skalowania w poziomie (za pomocą automatycznego skalowania lub ręcznego usuwania).

Jeśli zestaw skalowania maszyn wirtualnych nie jest zrównoważony, zestaw skalowania najpierw usunie maszyny wirtualne w strefach nierównowagi. W strefach niezrównoważonych zestaw skalowania używa określonych zasad skalowania w celu określenia, w której maszynie wirtualnej ma być skalowana. W takim przypadku w strefie nierównowagi zestaw skalowania wybierze najstarszą maszynę wirtualną w tej strefie do usunięcia.

W przypadku zestawu skalowania maszyn wirtualnych innych niż strefowe zasady wybierają najstarszą maszynę wirtualną w zestawie skalowania do usunięcia.

Ten sam proces ma zastosowanie w przypadku korzystania z zasad skalowania maszyny wirtualnej "Najnowsze maszyny wirtualne".

Modyfikowanie zasad skalowania w poziomie

Modyfikowanie zasad skalowania w poziomie jest zgodne z tym samym procesem co stosowanie zasad skalowania w poziomie. Jeśli na przykład chcesz zmienić zasady z "OldestVM" na "NewestVM", możesz to zrobić, wykonując następujące czynności:

Azure Portal

Zasady skalowania w poziomie istniejącego zestawu skalowania można modyfikować za pośrednictwem witryny Azure Portal.

  1. W istniejącym zestawie skalowania maszyn wirtualnych wybierz pozycję Skalowanie z menu po lewej stronie.
  2. Wybierz kartę Zasady skalowania w poziomie.
  3. Wybierz zasady skalowania z listy rozwijanej.
  4. Po zakończeniu wybierz opcję Zapisz.

Używanie interfejsu API

Wykonaj put w zestawie skalowania maszyn wirtualnych przy użyciu interfejsu API 2019-03-01:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01 

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["NewestVM"]  
        } 
    }    
}

Azure PowerShell

Zaktualizuj zasady skalowania w poziomie istniejącego zestawu skalowania:

Update-AzVmss `
 -ResourceGroupName "myResourceGroup" `
 -VMScaleSetName "myScaleSet" `
 -ScaleInPolicy “OldestVM”

Interfejs wiersza polecenia platformy Azure

Poniżej przedstawiono przykład aktualizowania zasad skalowania w poziomie istniejącego zestawu skalowania:

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --scale-in-policy OldestVM

Korzystanie z szablonu

W szablonie w obszarze "properties" zmodyfikuj szablon w następujący sposób i ponownie wdróż go:

"scaleInPolicy": {  
      "rules": ["NewestVM"]  
} 

Ten sam proces ma zastosowanie, jeśli zdecydujesz się zmienić wartość "NewestVM" na wartość "Default" lub "OldestVM"

Ochrona wystąpień i zasady skalowania w poziomie

Zestawy skalowania maszyn wirtualnych zapewniają dwa typy ochrony wystąpień:

  1. Ochrona przed skalowaniem
  2. Ochrona przed akcjami zestawu skalowania

Chroniona maszyna wirtualna nie jest usuwana za pośrednictwem akcji skalowania, niezależnie od zastosowanych zasad skalowania w poziomie. Jeśli na przykład VM_0 (najstarsza maszyna wirtualna w zestawie skalowania) jest chroniona przed skalowaniem w poziomie, a zestaw skalowania ma włączoną opcję "Najstarsze maszyny wirtualne" w poziomie, VM_0 nie będzie brana pod uwagę pod kątem skalowania w poziomie, mimo że jest to najstarsza maszyna wirtualna w zestawie skalowania.

Chroniona maszyna wirtualna może zostać ręcznie usunięta przez użytkownika w dowolnym momencie, niezależnie od zasad skalowania w zestawie skalowania.

Przykłady użycia

W poniższych przykładach pokazano, jak zestaw skalowania maszyn wirtualnych wybiera maszyny wirtualne do usunięcia po wyzwoleniu zdarzenia skalowania w poziomie. Zakłada się, że maszyny wirtualne o najwyższym identyfikatorze wystąpień są najnowszymi maszynami wirtualnymi w zestawie skalowania, a maszyny wirtualne z najmniejszymi identyfikatorami wystąpień są zakładane jako najstarsze maszyny wirtualne w zestawie skalowania.

Zasady skalowania maszyn wirtualnych najstarszych maszyn wirtualnych

Zdarzenie Identyfikatory wystąpień w strefie 1 Identyfikatory wystąpień w strefie 2 Identyfikatory wystąpień w strefie 3 Wybór skalowania w poziomie
Wartość początkowa 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Skalowanie w poziomie 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Wybierz między strefą 1 i 2, mimo że strefa 3 ma najstarszą maszynę wirtualną. Usuń maszynę wirtualną VM2 ze strefy 2, ponieważ jest to najstarsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 3, 4, 5, 10 6, 9, 11 1, 7, 8 Wybierz strefę 1, mimo że strefa 3 ma najstarszą maszynę wirtualną. Usuń maszynę wirtualną VM3 ze strefy 1, ponieważ jest to najstarsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 4, 5, 10 6, 9, 11 1, 7, 8 Strefy są zrównoważone. Usuń maszynę wirtualną VM1 w strefie 3, ponieważ jest to najstarsza maszyna wirtualna w zestawie skalowania.
Skalowanie w poziomie 4, 5, 10 6, 9, 11 7, 8 Wybierz między strefą 1 a strefą 2. Usuń maszynę wirtualną VM4 w strefie 1, ponieważ jest to najstarsza maszyna wirtualna w dwóch strefach.
Skalowanie w poziomie 5, 10 6, 9, 11 7, 8 Wybierz strefę 2, mimo że strefa 1 ma najstarszą maszynę wirtualną. Usuń maszynę wirtualną VM6 w strefie 1, ponieważ jest to najstarsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 5, 10 9, 11 7, 8 Strefy są zrównoważone. Usuń maszynę wirtualną VM5 w strefie 1, ponieważ jest to najstarsza maszyna wirtualna w zestawie skalowania.

W przypadku zestawów skalowania maszyn wirtualnych innych niż strefowe zasady wybierają najstarszą maszynę wirtualną w zestawie skalowania do usunięcia. Każda "chroniona" maszyna wirtualna jest pomijana do usunięcia.

Najnowsze zasady skalowania maszyn wirtualnych

Zdarzenie Identyfikatory wystąpień w strefie 1 Identyfikatory wystąpień w strefie 2 Identyfikatory wystąpień w strefie 3 Wybór skalowania w poziomie
Wartość początkowa 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Skalowanie w poziomie 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Wybierz między strefą 1 i 2. Usuń maszynę wirtualną VM11 ze strefy 2, ponieważ jest to najnowsza maszyna wirtualna w dwóch strefach.
Skalowanie w poziomie 3, 4, 5, 10 2, 6, 9 1, 7, 8 Wybierz strefę 1, ponieważ ma więcej maszyn wirtualnych niż pozostałe dwie strefy. Usuń maszynę wirtualną VM10 ze strefy 1, ponieważ jest to najnowsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 3, 4, 5 2, 6, 9 1, 7, 8 Strefy są zrównoważone. Usuń maszynę wirtualną VM9 w strefie 2, ponieważ jest to najnowsza maszyna wirtualna w zestawie skalowania.
Skalowanie w poziomie 3, 4, 5 2, 6 1, 7, 8 Wybierz między strefą 1 a strefą 3. Usuń maszynę wirtualną VM8 w strefie 3, ponieważ jest to najnowsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 3, 4, 5 2, 6 1, 7 Wybierz strefę 1, mimo że strefa 3 ma najnowszą maszynę wirtualną. Usuń maszynę wirtualną VM5 w strefie 1, ponieważ jest to najnowsza maszyna wirtualna w tej strefie.
Skalowanie w poziomie 3, 4 2, 6 1, 7 Strefy są zrównoważone. Usuń maszynę wirtualną VM7 w strefie 3, ponieważ jest to najnowsza maszyna wirtualna w zestawie skalowania.

W przypadku zestawów skalowania maszyn wirtualnych innych niż strefowe zasady wybierają najnowszą maszynę wirtualną w zestawie skalowania do usunięcia. Każda "chroniona" maszyna wirtualna jest pomijana do usunięcia.

Rozwiązywanie problemów

  1. Nie można włączyć funkcji scaleInPolicy Jeśli zostanie wyświetlony błąd "BadRequest" z komunikatem o błędzie z komunikatem o błędzie "Nie można odnaleźć elementu członkowskiego "scaleInPolicy" w obiekcie typu "properties", sprawdź wersję interfejsu API używaną dla zestawu skalowania maszyn wirtualnych. Dla tej funkcji jest wymagany interfejs API w wersji 2019-03-01 lub nowszej.

  2. Niewłaściwy wybór maszyn wirtualnych na potrzeby skalowania w poziomie Zapoznaj się z przykładami w tym dokumencie. Jeśli zestaw skalowania maszyn wirtualnych jest wdrożeniem strefowym, zasady skalowania w poziomie są stosowane najpierw do stref niezrównoważonych, a następnie w zestawie skalowania po zrównoważeniu strefy. Jeśli kolejność skalowania w poziomie nie jest zgodna z przykładami opisanymi tutaj, zgłoś zapytanie zespołowi zestawu skalowania maszyn wirtualnych na potrzeby rozwiązywania problemów.

Następne kroki

Dowiedz się, jak wdrożyć aplikację w zestawach skalowania maszyn wirtualnych.