Udostępnij za pośrednictwem


Automatyczne naprawy wystąpień dla zestawów skalowania maszyn wirtualnych platformy Azure

Włączenie automatycznych napraw wystąpień dla zestawów skalowania maszyn wirtualnych platformy Azure ułatwia osiągnięcie wysokiej dostępności dla aplikacji dzięki zachowaniu zestawu wystąpień w dobrej kondycji. Jeśli wystąpienie w złej kondycji zostanie znalezione przez rozszerzenie usługi Application Health lub sondy kondycji modułu równoważenia obciążenia, automatyczne naprawy wystąpień spróbują odzyskać wystąpienie przez wyzwolenie akcji naprawy, takich jak usunięcie wystąpienia w złej kondycji i utworzenie nowego wystąpienia w celu jego zastąpienia, ponowne utworzenie wystąpienia w złej kondycji lub ponowne uruchomienie wystąpienia w złej kondycji.

Wymagania dotyczące korzystania z automatycznych napraw wystąpień

Włączanie monitorowania kondycji aplikacji dla zestawu skalowania

Zestaw skalowania powinien mieć włączone monitorowanie kondycji aplikacji dla wystąpień. Monitorowanie kondycji można wykonać przy użyciu rozszerzenia kondycji aplikacji lub sond kondycji modułu równoważenia obciążenia, gdzie tylko jeden można włączyć jednocześnie. Rozszerzenie kondycji aplikacji lub sondy modułu równoważenia obciążenia wysyłają polecenie ping do punktu końcowego aplikacji skonfigurowanego w wystąpieniach maszyn wirtualnych w celu określenia stanu kondycji aplikacji. Ten stan kondycji jest używany przez koordynatora zestawu skalowania do monitorowania kondycji wystąpienia i wykonywania napraw, jeśli jest to wymagane.

Konfigurowanie punktu końcowego w celu zapewnienia stanu kondycji

Przed włączeniem zasad automatycznych napraw wystąpień upewnij się, że wystąpienia zestawu skalowania mają punkt końcowy aplikacji skonfigurowany do emitowania stanu kondycji aplikacji. Aby skonfigurować stan kondycji rozszerzenia Application Health, można użyć stanów kondycji binarnej lub stanów rozbudowanej kondycji. Aby skonfigurować stan kondycji przy użyciu sond kondycji modułu równoważenia obciążenia, zobacz sondowanie zachowania.

W przypadku wystąpień oznaczonych jako "W złej kondycji" lub "Nieznany" (nieznany stan jest dostępny tylko w przypadku rozszerzenia Application Health — Rich Health States), automatyczne naprawy są wyzwalane przez zestaw skalowania. Upewnij się, że punkt końcowy aplikacji jest poprawnie skonfigurowany przed włączeniem zasad automatycznych napraw, aby uniknąć niezamierzonych napraw wystąpień, podczas gdy punkt końcowy jest konfigurowany.

Wersja interfejsu API

Zasady automatycznej naprawy są obsługiwane w przypadku interfejsu API obliczeniowego w wersji 2018-10-01 lub nowszej.

Ustawienie repairAction Reimage i Restart jest obsługiwane dla interfejsu API obliczeń w wersji 2021-11-01 lub nowszej.

Ograniczenia dotyczące przenoszenie zasobów lub subskrypcji

Przenoszenie zasobów lub subskrypcji nie jest obecnie obsługiwane w przypadku zestawów skalowania po włączeniu funkcji automatycznych napraw.

Ograniczenie dotyczące zestawów skalowania usługi Service Fabric

Ta funkcja nie jest obecnie obsługiwana w przypadku zestawów skalowania usługi Service Fabric.

Ograniczenie dotyczące maszyn wirtualnych z błędami aprowizacji

Automatyczne naprawy obecnie nie obsługują scenariuszy, w których wystąpienie maszyny wirtualnej jest oznaczone jako W złej kondycji z powodu niepowodzenia aprowizacji. Aby umożliwić monitorowanie kondycji i automatyczne możliwości naprawy, należy pomyślnie zainicjować maszyny wirtualne.

Jak działają automatyczne naprawy wystąpień?

Funkcja automatycznej naprawy wystąpienia opiera się na monitorowaniu kondycji poszczególnych wystąpień w zestawie skalowania. Wystąpienia maszyn wirtualnych w zestawie skalowania można skonfigurować tak, aby emitować stan kondycji aplikacji przy użyciu rozszerzenia kondycji aplikacji lub sond kondycji modułu równoważenia obciążenia. Jeśli wystąpienie jest w złej kondycji, zestaw skalowania wykona wstępnie skonfigurowaną akcję naprawy w wystąpieniu w złej kondycji. Automatyczne naprawy wystąpień można włączyć w modelu zestawu skalowania maszyn wirtualnych przy użyciu automaticRepairsPolicy obiektu .

Proces automatycznej naprawy wystąpienia przebiega w następujący sposób:

  1. Rozszerzenie kondycji aplikacji lub sondy kondycji modułu równoważenia obciążenia wysyłają polecenie ping do punktu końcowego aplikacji wewnątrz każdej maszyny wirtualnej w zestawie skalowania, aby uzyskać stan kondycji aplikacji dla każdego wystąpienia.
  2. Jeśli punkt końcowy odpowiada stanem 200 (OK), wystąpienie jest oznaczone jako "W dobrej kondycji". We wszystkich pozostałych przypadkach (w tym jeśli punkt końcowy jest niemożliwy do osiągnięcia), wystąpienie jest oznaczone jako "W złej kondycji".
  3. Gdy wystąpienie jest w złej kondycji, zestaw skalowania stosuje skonfigurowaną akcję naprawy (wartość domyślna to Zamień) do wystąpienia w złej kondycji.
  4. Naprawy wystąpień są wykonywane w partiach. W danym momencie nie naprawia się więcej niż 5% łącznych wystąpień w zestawie skalowania. Jeśli zestaw skalowania ma mniej niż 20 wystąpień, naprawy są wykonywane dla jednego wystąpienia w złej kondycji naraz.
  5. Powyższy proces będzie kontynuowany do momentu naprawy wszystkich wystąpień w złej kondycji w zestawie skalowania.

Dostępne akcje naprawy

Istnieją trzy dostępne akcje naprawy dla automatycznych napraw wystąpień — zastępowanie, reimage i ponowne uruchamianie. Domyślną akcją naprawy jest Zastąp, ale można skonfigurować automatyczne naprawy, aby używać funkcji Reimage lub Restart, modyfikując repairAction ustawienie w automaticRepairsPolicy obiekcie .

  • Zamień usuwa wystąpienie w złej kondycji i tworzy nowe wystąpienie, aby je zamienić. Najnowszy model zestawu skalowania maszyn wirtualnych służy do tworzenia nowego wystąpienia. Ta akcja naprawy jest domyślna.

  • Reimage stosuje operację reimage do wystąpienia w złej kondycji.

  • Ponowne uruchomienie powoduje zastosowanie operacji ponownego uruchamiania do wystąpienia w złej kondycji.

W poniższej tabeli porównaliśmy różnice między wszystkimi trzema akcjami naprawy:

Akcja naprawy Identyfikator wystąpienia maszyny wirtualnej został zachowany? Prywatny adres IP został zachowany? Zachowany dysk danych zarządzanych? Zachowany dysk zarządzanego systemu operacyjnego? Zachowany dysk lokalny (tymczasowy)?
Zamień (wartość domyślna) Nie Nie. Nie. Nie. Nie.
Reimage Tak Tak Tak Nie Tak
Uruchom ponownie Tak Tak Tak Tak Tak

Aby uzyskać szczegółowe informacje na temat aktualizowania akcji naprawy w ramach zasad automatycznych napraw, zobacz sekcję konfigurowanie akcji naprawy automatycznej.

Dzielenie na partie

Automatyczne operacje naprawy wystąpienia są wykonywane w partiach. W danym momencie nie więcej niż 5% wystąpień w zestawie skalowania jest naprawianych za pomocą zasad automatycznych napraw. Ten proces pomaga uniknąć jednoczesnego usuwania i ponownego tworzenia dużej liczby wystąpień w przypadku znalezienia złej kondycji w tym samym czasie.

Okres prolongaty

Gdy wystąpienie przechodzi przez operację zmiany stanu z powodu akcji PUT, PATCH lub POST wykonywanej w zestawie skalowania, każda akcja naprawy tego wystąpienia jest wykonywana tylko po zakończeniu okresu prolongaty. Okres prolongaty to czas, przez który wystąpienie może powrócić do stanu dobrej kondycji. Okres prolongaty rozpoczyna się po zakończeniu zmiany stanu, co pomaga uniknąć przedwczesnych lub przypadkowych operacji naprawy. Okres prolongaty jest honorowany dla każdego nowo utworzonego wystąpienia w zestawie skalowania, w tym dla tego utworzonego w wyniku operacji naprawy. Okres prolongaty jest określony w minutach w formacie ISO 8601 i można go ustawić przy użyciu właściwości automaticRepairsPolicy.gracePeriod. Okres prolongaty może zawierać od 10 minut do 90 minut i ma wartość domyślną 10 minut.

Zawieszenie napraw

Zestawy skalowania maszyn wirtualnych zapewniają możliwość tymczasowego wstrzymania automatycznych napraw wystąpień w razie potrzeby. Parametr serviceState dla automatycznych napraw w ramach orkiestracji właściwościUsługi w widoku wystąpienia zestawu skalowania maszyn wirtualnych pokazuje bieżący stan automatycznych napraw. Gdy zestaw skalowania zostanie ustawiony na automatyczne naprawy, wartość parametru serviceState jest ustawiona na Uruchomiono. Gdy automatyczne naprawy są zawieszone dla zestawu skalowania, parametr serviceState jest ustawiony na Wstrzymane. Jeśli funkcja automaticRepairsPolicy jest zdefiniowana w zestawie skalowania, ale funkcja automatycznej naprawy nie jest włączona, parametr serviceState jest ustawiony na Wartość Nie uruchomiono.

Jeśli nowo utworzone wystąpienia zastępujące te w złej kondycji w zestawie skalowania nadal pozostają w złej kondycji nawet po wielokrotnym wykonywaniu operacji naprawy, to jako środek bezpieczeństwa platforma aktualizuje usługę ServiceState na potrzeby automatycznych napraw wstrzymanych. Automatyczne naprawy można wznowić ponownie, ustawiając wartość serviceState dla automatycznych napraw na Uruchomione. Szczegółowe instrukcje znajdują się w sekcji dotyczącej wyświetlania i aktualizowania stanu usługi zasad automatycznych napraw dla zestawu skalowania.

Możesz również skonfigurować reguły alertów platformy Azure, aby monitorować zmiany serviceState i otrzymywać powiadomienia, jeśli automatyczne naprawy staną się zawieszone w zestawie skalowania. Aby uzyskać szczegółowe informacje, zobacz Monitorowanie zmian stanu usługi automatycznego naprawiania wystąpień za pomocą reguł alertów platformy Azure.

Ochrona wystąpienia i automatyczne naprawy

Jeśli wystąpienie w zestawie skalowania jest chronione przez zastosowanie jednej z zasad ochrony, automatyczne naprawy nie są wykonywane na tym wystąpieniu. To zachowanie dotyczy zarówno zasad ochrony: ochrona przed skalowaniem i ochrona przed akcjami zestawu skalowania.

Kończenie powiadomień i automatycznych napraw

Jeśli funkcja powiadamiania o zakończeniu jest włączona w zestawie skalowania, podczas operacji zamieniania usunięcie wystąpienia w złej kondycji jest zgodne z konfiguracją powiadomienia o zakończeniu. Powiadomienie o zakończeniu jest wysyłane za pośrednictwem usługi Azure Metadata Service — zaplanowanych zdarzeń — a usunięcie wystąpienia jest opóźnione podczas skonfigurowanego limitu czasu opóźnienia. Jednak utworzenie nowego wystąpienia w celu zastąpienia go w złej kondycji nie czeka na ukończenie limitu czasu opóźnienia.

Włączanie zasad automatycznych napraw podczas tworzenia nowego zestawu skalowania

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

Aby włączyć zasady automatycznej naprawy podczas tworzenia nowego zestawu skalowania, upewnij się, że zostały spełnione wszystkie wymagania dotyczące wybrania tej funkcji. Punkt końcowy aplikacji powinien być poprawnie skonfigurowany dla wystąpień zestawu skalowania, aby uniknąć wyzwalania niezamierzonych napraw podczas konfigurowania punktu końcowego. W przypadku nowo utworzonych zestawów skalowania wszystkie naprawy wystąpień są wykonywane dopiero po zakończeniu okresu prolongaty. Aby włączyć automatyczną naprawę wystąpienia w zestawie skalowania, użyj obiektu automaticRepairsPolicy w modelu zestawu skalowania maszyn wirtualnych.

Możesz również użyć tego szablonu szybkiego startu , aby wdrożyć zestaw skalowania maszyn wirtualnych. Zestaw skalowania ma sondę kondycji modułu równoważenia obciążenia i automatyczne naprawy wystąpień włączone z okresem prolongaty wynoszącym 30 minut.

Poniższe kroki umożliwiają automatyczne naprawianie zasad 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 Kondycja.
  4. Znajdź sekcję Kondycja.
  5. Włącz opcję Monitorowanie kondycji aplikacji.
  6. Znajdź sekcję Zasady automatycznej naprawy.
  7. Włącz opcję Automatyczne naprawy.
  8. W obszarze Okres prolongaty (min), określ okres prolongaty w minutach, dozwolone wartości to od 10 do 90 minut.
  9. Po zakończeniu tworzenia nowego zestawu skalowania wybierz przycisk Przejrzyj i utwórz .

Włączanie zasad automatycznych napraw podczas aktualizowania istniejącego zestawu skalowania

Przed włączeniem zasad automatycznych napraw w istniejącym zestawie skalowania upewnij się, że zostały spełnione wszystkie wymagania dotyczące wyrażenia zgody na tę funkcję. Punkt końcowy aplikacji powinien być poprawnie skonfigurowany dla wystąpień zestawu skalowania, aby uniknąć wyzwalania niezamierzonych napraw podczas konfigurowania punktu końcowego. Aby włączyć automatyczną naprawę wystąpienia w zestawie skalowania, użyj obiektu automaticRepairsPolicy w modelu zestawu skalowania maszyn wirtualnych.

Po zaktualizowaniu modelu istniejącego zestawu skalowania upewnij się, że do wszystkich wystąpień skali zastosowano najnowszy model. Zapoznaj się z instrukcjami dotyczącymi sposobu aktualizowania maszyn wirtualnych przy użyciu najnowszego modelu zestawu skalowania.

Zasady automatycznej naprawy istniejącego zestawu skalowania można zmodyfikować za pośrednictwem witryny Azure Portal.

  1. Przejdź do istniejącego zestawu skalowania maszyn wirtualnych.0
  2. W obszarze Ustawienia w menu po lewej stronie wybierz pozycję Kondycja i naprawa.
  3. Włącz opcję Monitorowanie kondycji aplikacji.

Jeśli monitorujesz zestaw skalowania przy użyciu rozszerzenia Application Health:

  1. Wybierz pozycję Rozszerzenie application Health z listy rozwijanej Monitor kondycji aplikacji.

  2. Z listy rozwijanej Protokół wybierz protokół sieciowy używany przez aplikację do raportowania kondycji. Wybierz odpowiedni protokół na podstawie wymagań aplikacji. Opcje protokołu to HTTP, HTTPS lub TCP.

  3. W polu Konfiguracja numeru portu wpisz port sieciowy używany do monitorowania kondycji aplikacji.

  4. W polu Ścieżka podaj ścieżkę punktu końcowego aplikacji (na przykład "/") używaną do raportowania kondycji aplikacji.

    Uwaga

    Rozszerzenie Application Health wyśle polecenie ping do tej ścieżki wewnątrz każdej maszyny wirtualnej w zestawie skalowania, aby uzyskać stan kondycji aplikacji dla każdego wystąpienia. Jeśli używasz stanów kondycji binarnej, a punkt końcowy odpowiada ze stanem 200 (OK), wystąpienie jest oznaczone jako "W dobrej kondycji". We wszystkich pozostałych przypadkach (w tym jeśli punkt końcowy jest niemożliwy do osiągnięcia), wystąpienie jest oznaczone jako "W złej kondycji". Aby uzyskać więcej opcji stanu kondycji, zapoznaj się z tematem Rich Health States (Zaawansowane stany kondycji).

Jeśli monitorujesz zestaw skalowania przy użyciu sond kondycji SLB:

  • Wybierz pozycję Sonda modułu równoważenia obciążenia z listy rozwijanej Monitor kondycji aplikacji.- W przypadku sondy kondycji modułu równoważenia obciążenia wybierz istniejącą sondę kondycji lub utwórz nową sondę kondycji na potrzeby monitorowania.

Aby włączyć automatyczne naprawy:

  1. Znajdź sekcję Zasady automatycznej naprawy.
  2. Włącz opcję Automatyczne naprawy.
  3. W polu Okres prolongaty (min)określ okres prolongaty w minutach. Dozwolone wartości to od 10 do 90 minut.
  4. Po zakończeniu wybierz opcję Zapisz.

Konfigurowanie akcji naprawy dla zasad automatycznych napraw

Ustawienie repairAction w obszarze automaticRepairsPolicy umożliwia określenie żądanej akcji naprawy wykonanej w odpowiedzi na wystąpienie w złej kondycji. Jeśli aktualizujesz akcję naprawy w istniejących zasadach automatycznych napraw, musisz najpierw wyłączyć automatyczne naprawy w zestawie skalowania i ponownie włączyć przy użyciu zaktualizowanej akcji naprawy. Ten proces przedstawiono w poniższych przykładach.

W tym przykładzie pokazano, jak zaktualizować akcję naprawy w zestawie skalowania przy użyciu istniejących zasad automatycznych napraw. Użyj interfejsu API w wersji 2021-11-01 lub nowszej.

Wyłączanie istniejących zasad automatycznych napraw w zestawie skalowania

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "false"
        }
    }
}

Ponowne włączanie zasad automatycznych napraw przy użyciu żądanej akcji naprawy

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT40M",
            "repairAction": "Reimage"
        }
    }
}

Wyświetlanie i aktualizowanie stanu usługi zasad automatycznych napraw wystąpień

Użyj polecenia Get Instance View with API version 2019-12-01 or higher for Virtual Machine Scale Set (Pobierz widok wystąpienia z interfejsem API w wersji 2019-12-01 lub nowszej dla zestawu skalowania maszyn wirtualnych), aby wyświetlić właściwość ServiceState na potrzeby automatycznych napraw w ramach orkiestracji właściwościServices.

GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Running"
    }
  ]
}

Użyj opcji Ustaw stan usługi Orkiestracji, aby wstrzymać lub wznowić usługęState na potrzeby automatycznych napraw.

POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'

{
  "serviceName": "AutomaticRepairs",
  "action": "Suspend"
}

Rozwiązywanie problemów

Nie można włączyć zasad automatycznych napraw

Jeśli wystąpi błąd "BadRequest" z komunikatem "Nie można odnaleźć elementu członkowskiego "automaticRepairsPolicy" na obiekcie typu "properties", sprawdź wersję interfejsu API używaną dla zestawu skalowania maszyn wirtualnych. Dla tej funkcji jest wymagany interfejs API w wersji 2018-10-01 lub nowszej.

Wystąpienie nie jest naprawiane nawet wtedy, gdy zasady są włączone

Wystąpienie może być w okresie prolongaty. Ten okres to czas oczekiwania po zmianie stanu wystąpienia przed wykonaniem naprawy, co pomaga uniknąć przedwczesnych lub przypadkowych napraw. Akcja naprawy powinna nastąpić po zakończeniu okresu prolongaty dla wystąpienia.

Wyświetlanie stanu kondycji aplikacji dla wystąpień zestawu skalowania

Aby wyświetlić stan kondycji aplikacji, możesz użyć interfejsu API pobierania widoku wystąpienia dla wystąpień w zestawie skalowania maszyn wirtualnych. Za pomocą programu Azure PowerShell możesz użyć polecenia cmdlet Get-AzVmssVM z flagą -InstanceView . Stan kondycji aplikacji jest udostępniany w obszarze właściwości vmHealth.

W witrynie Azure Portal można również zobaczyć stan kondycji. Przejdź do istniejącego zestawu skalowania, wybierz pozycję Wystąpienia z menu po lewej stronie i przyjrzyj się kolumnie Stan kondycji dla stanu kondycji każdego wystąpienia zestawu skalowania.

Następne kroki

Dowiedz się, jak skonfigurować rozszerzenie usługi Application Health lub sondy kondycji modułu równoważenia obciążenia dla zestawów skalowania.