Sdílet prostřednictvím


Automatické opravy instancí pro škálovací sady virtuálních počítačů Azure

Povolení automatických oprav instancí pro škálovací sady virtuálních počítačů Azure pomáhá zajistit vysokou dostupnost pro aplikace udržováním sady instancí, které jsou v pořádku. Pokud rozšíření Application Health nebo sondy stavu nástroje pro vyrovnávání zatížení zjistí nezdravou instanci, automatické opravy instancí se pokusí instanci obnovit pomocí opravárenských akcí, jako je odstranění nezdravé instance a vytvoření nové, která ji nahradí, přeinstalování nezdravé instance nebo restartování nezdravé instance.

Požadavky na používání automatických oprav instancí

Povolení monitorování stavu aplikace pro škálovací sadu

Škálovací sada by měla mít povolené monitorování stavu aplikace pro instance. Monitorování zdraví lze provést pomocí buď rozšíření sledování stavu aplikací, nebo sond stavu vyrovnávače zatížení, přičemž lze povolit pouze jedno z nich najednou. Rozšíření stavu aplikace nebo sondy vyrovnávače zatížení pingují koncový bod aplikace nakonfigurovaný v instancích virtuálních počítačů, aby zjistily stav zdravotního stavu aplikace. Tento stav používá orchestrátor škálovací sady k monitorování stavu instance a provádění oprav v případě potřeby.

Konfigurace koncového bodu pro poskytování informací o stavu systému

Před povolením zásad automatických oprav instancí se ujistěte, že instance škálovací sady mají nakonfigurovaný koncový bod aplikace pro vyhodnocování stavu zdraví aplikace. Ke konfiguraci stavu aplikace v rozšíření Application Health, můžete použít buď binární stavy zdraví nebo bohaté stavy zdraví. Pokud chcete nakonfigurovat stav pomocí sond stavu nástroje pro vyrovnávání zatížení, podívejte se na chování sondy.

U instancí označených jako "Není v pořádku" nebo "Neznámý" (Neznámý stav je k dispozici pouze s rozšířením služby Application Health – Rich Health States) se automatické opravy aktivují škálovací sadou. Před povolením zásad automatických oprav se ujistěte, že je koncový bod aplikace správně nakonfigurovaný, aby se zabránilo nežádoucím opravám instancí během konfigurace koncového bodu.

Verze rozhraní API

Zásady automatických oprav se podporují pro výpočetní rozhraní API verze 2018-10-01 nebo vyšší.

Nastavení repairAction pro obnovení a restartování se podporuje pro výpočetní rozhraní API verze 2021–11-01 nebo vyšší.

Omezení přesunů prostředků nebo předplatného

Přesuny prostředků ani předplatných se v současné době nepodporují pro škálovací sady, pokud je povolena funkce automatických oprav.

Omezení škálovacích sad Service Fabric

Tato funkce se v současné době nepodporuje pro škálovací sady Service Fabric.

Omezení pro virtuální počítače s chybami zřizování

Automatické opravy v současné době nepodporují scénáře, kdy je instance virtuálního počítače označena Nefunkční kvůli selhání zřizování. Aby bylo možné povolit monitorování stavu a možnosti automatické opravy, musí být virtuální počítače úspěšně inicializovány.

Jak fungují automatické opravy instancí?

Automatická oprava instance závisí na sledování stavu jednotlivých instancí ve škálovací sadě. Instance virtuálních počítačů ve škálovací sadě je možné nakonfigurovat tak, aby vydávaly stav zdraví aplikace pomocí rozšíření pro stav zdraví aplikace nebo sond stavu zdraví nástroje pro vyrovnávání zatížení. Pokud se zjistí, že instance není v pořádku, škálovací sada provede u instance, která není v pořádku, předkonfigurovanou akci opravy. Automatické opravy instancí je možné povolit v modelu škálovací sady virtuálních počítačů pomocí objektu automaticRepairsPolicy .

Proces automatických oprav instancí probíhá takto:

  1. Rozšíření stavu aplikace nebo sondy vyrovnávání zatížení kontrolují koncový bod aplikace uvnitř každého virtuálního počítače ve škálovací sadě, aby zjistily stav aplikace pro každou instanci.
  2. Pokud koncový bod odpoví stavem 200 (OK), instance se označí jako V pořádku. Ve všech ostatních případech (včetně toho, jestli je koncový bod nedostupný), je instance označena jako "Není v pořádku".
  3. Když zjistíte, že instance není v pořádku, škálovací sada použije nakonfigurovanou akci opravy (výchozí hodnota Nahradit) na instanci, která není v pořádku.
  4. Opravy instancí se provádějí v dávkách. Maximálně 5 % celkového počtu instancí ve škálovací sadě je opravováno v daný okamžik. Pokud má škálovací sada méně než 20 instancí, opravy se provádějí pro jednu nezdravou instanci najednou.
  5. Výše uvedený proces pokračuje, dokud nejsou opraveny všechny nezdravé instance ve škálovací sadě.

Dostupné akce opravy

Jsou k dispozici tři akce pro automatické opravy instancí – nahrazení, přeinstalování a restartování. Výchozí akce opravy je Nahradit, ale můžete nakonfigurovat automatické opravy tak, aby používaly Reimage nebo Restart, úpravou nastavení v objektu repairActionautomaticRepairsPolicy.

Poznámka:

Automatické opravy s akcí Nahradit vždy vytvoří nové virtuální počítače na základě aktuálního modelu VMSS. Pokud jste připojili virtuální počítače s konfiguracemi, které se liší od modelu VMSS, tyto rozdíly se nezachovají. Nový virtuální počítač bude odpovídat aktuálnímu modelu VMSS, nikoli konfiguraci odstraněného virtuálního počítače.

  • Nahradí odstraní nezdravou instanci a vytvoří novou instanci, která ji nahradí. K vytvoření nové instance se používá nejnovější model škálovací sady virtuálních počítačů. Tato akce opravy je výchozí.
  • Reimage použije operaci opětovného vytvoření image na instanci, která není v pořádku.
  • Restart použije operaci restartu na nefunkční instanci.

Následující tabulka porovnává rozdíly mezi všemi třemi akcemi opravy:

Akce opravy ID instance virtuálního počítače se zachovalo? Privátní IP adresa se zachovala? Zůstal spravovaný datový disk zachován? Je spravovaný disk s operačním systémem zachován? Místní (dočasný) disk se zachová?
Nahradit (výchozí) Ne Ne Ne Ne Ne
Znovu nainstalovat z obrazu Ano Ano Ano Ne Ano
Restartovat Ano Ano Ano Ano Ano

Podrobnosti o aktualizaci akce opravy v rámci zásad automatických oprav najdete v části Konfigurace akce opravy pro zásady automatických oprav.

Dávkování

Operace automatické opravy instance se provádějí v dávkách. V každém okamžiku se prostřednictvím politiky automatických oprav neopraví více než 5 % instancí ve škálovací sadě. Tento proces pomáhá vyhnout se souběžnému odstranění a opětovnému vytvoření velkého počtu instancí, pokud jsou současně považovány za nefunkční.

Poskytnutá lhůta

Když instance projde operací změny stavu z důvodu akce PUT, PATCH nebo POST provedené ve škálovací sadě, provede se jakákoli akce opravy této instance až po skončení období odkladu. Období odkladu je doba, po kterou se instance může vrátit do stavu v pořádku. Období odkladu začíná po dokončení změny stavu, což pomáhá vyhnout se jakýmkoli předčasně nebo nechtěným operacím opravy. Období odkladu se respektuje pro všechny nově vytvořené instance ve škálovací sadě, včetně té vytvořené v důsledku operace opravy. Období odkladu je zadáno v minutách ve formátu ISO 8601 a lze jej nastavit pomocí vlastnosti automaticRepairsPolicy.gracePeriod. Období odkladu může být v rozsahu 10 minut až 90 minut a má výchozí hodnotu 10 minut.

Pozastavení oprav

Škálovací sady virtuálních počítačů poskytují možnost dočasně pozastavit automatické opravy instancí v případě potřeby. serviceState pro automatické opravy ve vlastnosti orchestrationServices v zobrazení instance sady Virtual Machine Scale Set zobrazuje aktuální stav automatických oprav. Pokud je škálovací sada přihlášena k automatickým opravám, hodnota parametru serviceState je nastavena na Spuštěno. Pokud jsou automatické opravy pro škálovací sadu pozastavené, parametr serviceState je nastaven na Pozastaveno. Pokud je ve škálovací sadě definována funkce automaticRepairsPolicy , ale funkce automatických oprav není povolená, nastaví se parametr serviceState na Hodnotu Není spuštěno.

Pokud nově vytvořené instance pro nahrazení těch nefunkčních ve škálovací sadě zůstanou nefunkční i po opakovaném provádění oprav, platforma jako bezpečnostní opatření aktualizuje stav služby automatických oprav na Pozastaveno. Automatické opravy můžete obnovit nastavením hodnoty serviceState pro automatické opravy na Spuštěno. Podrobné pokyny najdete v části o zobrazení a aktualizaci stavu služby politiky automatických oprav pro vaši škálovací sadu.

Můžete také nastavit pravidla upozornění Azure pro monitorování změn stavu služby a dostávat oznámení, pokud se ve škálovací sadě pozastaví automatické opravy. Podrobnosti najdete v Použití pravidel upozornění Azure k monitorování změn stavu služby automatických oprav instancí.

Ochrana instancí a automatické opravy

Pokud je instance ve škálovací sadě chráněná použitím jedné ze zásad ochrany, neprovádí se v této instanci automatická oprava. Toto chování platí pro obě zásady ochrany: Chránit před škálováním dolů a Chránit před nastavením škálování.

Ukončení oznámení a automatických oprav

Pokud je funkce oznámí o ukončení ve škálovací sadě povolená, pak během operace Nahrazení se odstranění nefunkční instance řídí konfigurací ukončení oznámení. Oznámení o ukončení se odesílá prostřednictvím služby metadat Azure – naplánované události – a během nakonfigurovaného časového limitu zpoždění je odstranění instance zpožděné. Vytvoření nové instance, která nahradí chybnou instanci, nečeká na uplynutí časového limitu zpoždění.

Povolení zásad automatických oprav při vytváření nové škálovací sady

Důležité

Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – Microsoft Community Hub.

Pokud chcete povolit zásady automatických oprav při vytváření nové škálovací sady, ujistěte se, že jsou splněné všechny požadavky na vyjádření souhlasu s touto funkcí. Koncový bod aplikace by měl být správně nakonfigurován pro instance škálovací sady, aby se předešlo náhodným opravám během konfigurace koncového bodu. U nově vytvořených škálovacích sad se opravy instancí provádějí až po dokončení období odkladu. Pokud chcete povolit automatickou opravu instance ve škálovací sadě, použijte objekt automaticRepairsPolicy v modelu škálovací sady virtuálních počítačů.

Tuto šablonu rychlého startu můžete použít také k nasazení škálovací sady virtuálních počítačů. V rychlém startu má škálovací sada sondu stavu nástroje pro vyrovnávání zatížení a povolenou automatickou opravu instancí s nakonfigurovaným obdobím odkladu 30 minut.

Při vytváření nové škálovací sady následující kroky povolují zásadu automatických oprav.

  1. Přejděte do škálovacích sad virtuálních počítačů.
  2. Vyberte + Přidat a vytvořte novou škálovací sadu.
  3. Přejděte na kartu Zdraví.
  4. Vyhledejte oddíl Zdraví.
  5. Povolte možnost Monitorovat stav aplikace.
  6. Vyhledejte část Zásady automatické opravy.
  7. Zapněte možnost Automatické opravy.
  8. V období odkladu (min)zadejte období odkladu v minutách, povolené hodnoty jsou mezi 10 a 90 minut.
  9. Po vytvoření nové škálovací sady vyberte tlačítko Zkontrolovat a vytvořit .

Povolení zásad automatických oprav při aktualizaci existující škálovací sady

Před povolením zásad automatických oprav ve stávající škálovací sadě se ujistěte, že jsou splněné všechny požadavky na vyjádření souhlasu s touto funkcí. Koncový bod aplikace by měl být správně nakonfigurován pro instance škálovací sady, aby se předešlo náhodným opravám během konfigurace koncového bodu. Pokud chcete povolit automatickou opravu instance ve škálovací sadě, použijte objekt automaticRepairsPolicy v modelu škálovací sady virtuálních počítačů.

Po aktualizaci modelu existující škálovací sady se ujistěte, že se na všechny instance škálování použije nejnovější model. Přečtěte si pokyny k tomu, jak virtuální počítače aktualizovat pomocí nejnovějšího modelu škálovací sady.

Zásady automatických oprav existující škálovací sady můžete upravit prostřednictvím webu Azure Portal.

Poznámka:

Před provedením dalších kroků povolte na škálovacích sadách virtuálních počítačů buď rozšíření Application Health, nebo sondy zdravotního stavu Load Balancer.

  1. Přejděte na existující škálovací sadu virtuálních počítačů.0
  2. V části Nastavení v nabídce vlevo vyberte Stav a opravu.
  3. Povolte možnost Monitorovat stav aplikace.

Pokud monitorujete svou škálovací sadu pomocí rozšíření Application Health:

  1. V rozevíracím seznamu Monitorování stavu aplikace zvolte rozšíření Monitorování stavu.

  2. V rozevíracím seznamu Protokol zvolte síťový protokol používaný vaší aplikací k hlášení stavu. Vyberte odpovídající protokol na základě požadavků vaší aplikace. Možnosti protokolu jsou HTTP, HTTPS nebo TCP.

  3. Do pole Konfigurace čísla portu zadejte síťový port použitý k monitorování stavu aplikace.

  4. Jako cestu zadejte cestu ke koncovému bodu aplikace (například /) použitou k hlášení stavu aplikace.

    Poznámka:

    Rozšíření Zdraví aplikace pingne tuto cestu uvnitř každého virtuálního počítače v rámci škálovací sady, aby zjistilo zdraví aplikace pro jednotlivé instance. Pokud používáte binární stavy zdraví a koncový bod odpoví stavem 200 (OK), instance se označí jako "Zdravá". Ve všech ostatních případech (včetně toho, jestli je koncový bod nedostupný), je instance označena jako "Není v pořádku". Další možnosti zdravotního stavu najdete v tématu Rich Health States.

Pokud monitorujete škálovací sadu pomocí sond stavu SLB:

  • V rozevíracím seznamu Monitorování stavu aplikace zvolte sondu pro vyrovnávání zatížení. - Pro sondu stavu Load Balanceru vyberte existující sondu stavu nebo vytvořte novou sondu stavu pro monitorování.

Povolení automatických oprav:

  1. Vyhledejte část Zásady automatické opravy.
  2. Zapněte možnost Automatické opravy.
  3. V období odkladu (min)zadejte období odkladu v minutách. Povolené hodnoty jsou mezi 10 a 90 minut.
  4. Až budete hotovi, zvolte tlačítko Uložit.

Nakonfigurujte akci opravy v rámci zásad automatických oprav

Nastavení repairAction v části automaticRepairsPolicy umožňuje určit požadovanou akci opravy provedenou v reakci na instanci, která není v pořádku. Pokud aktualizujete akci opravy u existujících zásad automatických oprav, musíte nejprve zakázat automatické opravy ve škálovací sadě a znovu povolit aktualizovanou akci opravy. Tento proces je znázorněn v následujících příkladech.

Tento příklad ukazuje, jak aktualizovat akci opravy ve škálovací sadě pomocí stávajících zásad automatických oprav. Použijte rozhraní API verze 2021-11-01 nebo vyšší.

Zakázání existujících zásad automatických oprav ve škálovací sadě

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

Opětovné povolení zásad automatických oprav pomocí požadované akce opravy

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

Zobrazení a aktualizace stavu služby v rámci zásady pro automatické opravy instancí

Pomocí Get Instance View s rozhraním API verze 2019-12-01 nebo vyšší pro sady pro škálování virtuálních strojů můžete zobrazit serviceState pro automatické opravy v rámci vlastnosti orchestrationServices.

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

Pomocí funkce Nastavit stav služby Orchestraation můžete pozastavit nebo obnovit stav služby pro automatické opravy.

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

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

Odstraňování potíží

Nepovedlo se povolit zásady automatických oprav

Pokud se zobrazí chyba BadRequest se zprávou "Nepodařilo se najít člena automaticRepairsPolicy" u objektu typu Properties, zkontrolujte verzi rozhraní API použitou pro škálovací sadu virtuálních počítačů. Pro tuto funkci se vyžaduje rozhraní API verze 2018-10-01 nebo vyšší.

Instance se neopraví ani když je povolena politika

Instance může být v období odkladu. Toto období je doba čekání po jakékoli změně stavu instance před provedením oprav, což pomáhá předejít jakýmkoli předčasně nebo náhodným opravám. Akce opravy by měla být provedena po dokončení období odkladu pro instanci.

Zobrazení zdravotního stavu aplikace pro instance škálovací sady

K zobrazení stavu zdraví aplikace můžete použít rozhraní API Get Instance View API pro instance ve škálovací sadě virtuálních počítačů. Pomocí Azure PowerShellu můžete použít rutinu Get-AzVmssVM s příznakem -InstanceView. Stav aplikace je k dispozici ve vlastnosti vmHealth.

Na webu Azure Portal můžete zobrazit také stav. Přejděte do existující škálovací sady, v nabídce vlevo vyberte Instance a podívejte se na sloupec Stav pro stav jednotlivých instancí škálovací sady.

Další kroky

Zjistěte, jak pro škálovací sady nakonfigurovat rozšíření Application Health nebo sondy stavu vyrovnávání zatížení.