Automatische exemplaarreparaties voor virtuele-machineschaalsets van Azure

Belangrijk

De herstelacties Voor opnieuw installatiekopie en opnieuw opstarten zijn momenteel beschikbaar in PREVIEW. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn. Sommige aspecten van deze functie worden mogelijk nog gewijzigd voordat de functie algemeen beschikbaar wordt.

Het inschakelen van automatische exemplaarreparaties voor Virtuele-machineschaalsets van Azure helpt bij het realiseren van hoge beschikbaarheid voor toepassingen door een set goede exemplaren te onderhouden. Als er een beschadigde instantie wordt gevonden door de Application Health-extensie of statustests van de Load Balancer, probeert automatische exemplaarreparaties het exemplaar te herstellen door herstelacties te activeren, zoals het verwijderen van het beschadigde exemplaar en het maken van een nieuwe instantie om deze te vervangen, het beschadigde exemplaar (preview) te herstellen of het beschadigde exemplaar opnieuw op te starten (preview).

Vereisten voor het gebruik van automatische exemplaarreparaties

Toepassingsstatuscontrole inschakelen voor schaalset

Voor de schaalset moet toepassingsstatuscontrole zijn ingeschakeld voor exemplaren. Statuscontrole kan worden uitgevoerd met behulp van application Health-extensie of load balancer-statustests, waarbij er slechts één tegelijk kan worden ingeschakeld. De toepassingsstatusextensie of de load balancer test ping het toepassingseindpunt dat is geconfigureerd op instanties van virtuele machines om de status van de toepassing te bepalen. Deze status wordt gebruikt door de orchestrator van de schaalset om de status van het exemplaar te bewaken en reparaties uit te voeren wanneer dat nodig is.

Eindpunt configureren om de status op te geven

Voordat u het beleid voor automatische exemplaarherstel inschakelt, moet u ervoor zorgen dat uw schaalsetexemplaren een toepassingseindpunt hebben geconfigureerd om de status van de toepassing te verzenden. Als u de status van de Application Health-extensie wilt configureren, kunt u binaire statusstatussen of uitgebreide statusstatussen gebruiken. Als u de status wilt configureren met behulp van load balancer-statustests, raadpleegt u het gedrag van tests.

Exemplaren die zijn gemarkeerd als 'Niet in orde' of 'Onbekend' (onbekende status is alleen beschikbaar met de extensie Application Health - Rich Health States), worden automatische reparaties geactiveerd door de schaalset. Zorg ervoor dat het toepassingseindpunt correct is geconfigureerd voordat u het beleid voor automatische reparaties inschakelt om onbedoelde exemplaarreparaties te voorkomen, terwijl het eindpunt wordt geconfigureerd.

API-versie

Beleid voor automatische reparatie wordt ondersteund voor compute-API-versie 2018-10-01 of hoger.

De repairAction instelling voor Reimage (Preview) en Restart (Preview) wordt ondersteund voor compute-API-versies 2021-11-01 of hoger.

Beperkingen voor verplaatsingen van resources of abonnementen

Verplaatsingen van resources of abonnementen worden momenteel niet ondersteund voor schaalsets wanneer de functie voor automatische reparatie is ingeschakeld.

Beperking voor Service Fabric-schaalsets

Deze functie wordt momenteel niet ondersteund voor Service Fabric-schaalsets.

Beperking voor VM's met inrichtingsfouten

Automatische reparaties ondersteunen momenteel geen scenario's waarbij een VM-exemplaar is gemarkeerd als Beschadigd vanwege een inrichtingsfout. VM's moeten worden geïnitialiseerd om statuscontrole en mogelijkheden voor automatisch herstel mogelijk te maken.

Hoe werken automatische exemplaarherstelwerkzaamheden?

De functie voor automatisch exemplaarherstel is afhankelijk van statuscontrole van afzonderlijke exemplaren in een schaalset. VM-exemplaren in een schaalset kunnen worden geconfigureerd om de status van de toepassing te verzenden met behulp van de statustest van de toepassing of load balancer. Als een exemplaar niet in orde is, voert de schaalset een vooraf geconfigureerde herstelactie uit op het beschadigde exemplaar. Automatische exemplaarreparaties kunnen worden ingeschakeld in het model virtuele-machineschaalset met behulp van het automaticRepairsPolicy object.

Het proces voor automatische exemplaarreparaties gaat als volgt:

  1. Statustests van de toepassingsstatus of load balancer pingen het toepassingseindpunt in elke virtuele machine in de schaalset om de status van de toepassing voor elk exemplaar op te halen.
  2. Als het eindpunt reageert met de status 200 (OK), wordt het exemplaar gemarkeerd als 'In orde'. In alle andere gevallen (inclusief als het eindpunt onbereikbaar is), wordt het exemplaar gemarkeerd als Niet in orde.
  3. Wanneer een exemplaar niet in orde is, past de schaalset de geconfigureerde herstelactie (standaard is Vervangen) toe op het beschadigde exemplaar.
  4. Exemplaarreparaties worden uitgevoerd in batches. Op elk gewenst moment wordt niet meer dan 5% van de totale exemplaren in de schaalset hersteld. Als een schaalset minder dan 20 exemplaren heeft, worden de reparaties uitgevoerd voor één beschadigde instantie tegelijk.
  5. Het bovenstaande proces wordt voortgezet totdat alle beschadigde exemplaren in de schaalset worden hersteld.

Beschikbare herstelacties

Let op

De repairAction instelling, bevindt zich momenteel onder PREVIEW en is niet geschikt voor productieworkloads. Als u een voorbeeld van de herstelacties voor opnieuw opstarten en opnieuw installatiekopie wilt bekijken, moet u uw Azure-abonnement registreren met de AFEC-vlag AutomaticRepairsWithConfigurableRepairActions en moet uw compute-API-versie 2021-11-01 of hoger zijn. Zie Preview-functies instellen in een Azure-abonnement voor meer informatie.

Er zijn drie beschikbare herstelacties voor automatische exemplaarreparaties: Vervangen, Opnieuw installatiekopie (preview) en Opnieuw opstarten (preview). De standaardherstelactie is Vervangen, maar u kunt overschakelen naar Reimage (Preview) of Opnieuw opstarten (preview) door u in te schrijven in de preview en de repairAction instelling onder automaticRepairsPolicy object te wijzigen.

  • Vervang het beschadigde exemplaar en maakt een nieuw exemplaar om deze te vervangen. Het nieuwste virtuele-machineschaalsetmodel wordt gebruikt om het nieuwe exemplaar te maken. Deze herstelactie is de standaardinstelling.

  • Met reimage wordt de reimagebewerking toegepast op het beschadigde exemplaar.

  • Opnieuw opstarten past de herstartbewerking toe op het beschadigde exemplaar.

In de volgende tabel worden de verschillen tussen alle drie de herstelacties vergeleken:

Herstelactie ID van VM-exemplaar behouden? Privé-IP behouden? Beheerde gegevensschijf behouden? Beheerde besturingssysteemschijf behouden? Lokale (tijdelijke) schijf behouden?
Replace Nee Nr. Nr. Nr. Nr.
Installatiekopie terugzetten Ja Ja Ja Nr. Ja
Opnieuw starten Ja Ja Ja Ja Ja

Zie de sectie Herstelbeleid configureren voor meer informatie over het bijwerken van uw reparatieactie onder beleid voor automatische reparaties .

Batching

De automatische herstelbewerkingen voor exemplaren worden uitgevoerd in batches. Op elk gewenst moment wordt niet meer dan 5% van de exemplaren in de schaalset hersteld via het beleid voor automatische reparaties. Met dit proces voorkomt u gelijktijdig verwijderen en opnieuw maken van een groot aantal exemplaren als deze op hetzelfde moment niet in orde zijn.

Evaluatieperiode

Wanneer een exemplaar een statuswijzigingsbewerking doorloopt vanwege een PUT-, PATCH- of POST-actie die wordt uitgevoerd op de schaalset, wordt elke herstelactie op dat exemplaar pas uitgevoerd nadat de respijtperiode is beëindigd. Respijtperiode is de hoeveelheid tijd om het exemplaar in staat te stellen terug te keren naar de status In orde. De respijtperiode wordt gestart nadat de statuswijziging is voltooid, waardoor voortijdige of onopzettelijke herstelbewerkingen worden voorkomen. De respijtperiode wordt uitgevoerd voor alle nieuw gemaakte exemplaren in de schaalset, inclusief de instantie die is gemaakt als gevolg van herstelbewerking. Respijtperiode wordt opgegeven in minuten in ISO 8601-indeling en kan worden ingesteld met behulp van de eigenschap automaticRepairsPolicy.gracePeriod. Respijtperiode kan variëren tussen 10 minuten en 90 minuten en heeft een standaardwaarde van 30 minuten.

Schorsing van reparaties

Virtuele-machineschaalsets bieden de mogelijkheid om automatische exemplaarreparaties tijdelijk te onderbreken, indien nodig. De serviceState voor automatische reparaties onder de eigenschap orchestrationServices in de exemplaarweergave van virtuele-machineschaalset toont de huidige status van de automatische reparaties. Wanneer een schaalset wordt gekozen voor automatische reparaties, wordt de waarde van parameterserviceState ingesteld op Actief. Wanneer de automatische reparaties worden onderbroken voor een schaalset, wordt de parameterserviceState ingesteld op Onderbroken. Als automaticRepairsPolicy is gedefinieerd op een schaalset, maar de functie voor automatische reparaties niet is ingeschakeld, is de parameter serviceState ingesteld op Niet actief.

Als nieuw gemaakte exemplaren voor het vervangen van de beschadigde exemplaren in een schaalset nog steeds niet in orde blijven, zelfs nadat herhaaldelijk reparatiebewerkingen zijn uitgevoerd, werkt het platform de serviceState bij voor automatische reparaties naar Onderbroken. U kunt de automatische reparaties opnieuw hervatten door de waarde van serviceState in te stellen voor automatische reparaties op Actief. Gedetailleerde instructies vindt u in de sectie over het weergeven en bijwerken van de servicestatus van het beleid voor automatische reparaties voor uw schaalset.

U kunt ook Azure Alert Rules instellen om serviceState-wijzigingen te controleren en een melding te ontvangen als automatische reparaties worden onderbroken in uw schaalset. Zie Azure-waarschuwingsregels gebruiken om wijzigingen in de servicestatus van automatische exemplaarreparaties te controleren voor meer informatie.

Exemplaarbeveiliging en automatische reparaties

Als een exemplaar in een schaalset wordt beveiligd door een van de beveiligingsbeleidsregels toe te passen, worden automatische reparaties niet op dat exemplaar uitgevoerd. Dit gedrag is van toepassing op zowel het beveiligingsbeleid: Beveiligen tegen inschalen en Beveiligen tegen acties voor schaalsets .

Melding beëindigen en automatische reparaties

Als de functie voor beëindigingsmeldingen is ingeschakeld voor een schaalset, volgt het verwijderen van een beschadigd exemplaar tijdens een vervangingsbewerking de configuratie van de beëindigingsmelding. Er wordt een beëindigingsmelding verzonden via de Azure-metagegevensservice, geplande gebeurtenissen, en het verwijderen van exemplaren wordt vertraagd tijdens de geconfigureerde time-out voor vertraging. Het maken van een nieuw exemplaar om de beschadigde instantie te vervangen, wacht echter niet tot de vertragingstime-out is voltooid.

Beleid voor automatische reparaties inschakelen bij het maken van een nieuwe schaalset

Belangrijk

Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub

Voor het inschakelen van beleid voor automatische reparaties tijdens het maken van een nieuwe schaalset, moet u ervoor zorgen dat aan alle vereisten voor het aanmelden voor deze functie wordt voldaan. Het toepassingseindpunt moet correct worden geconfigureerd voor instanties van schaalsets om onbedoelde reparaties te voorkomen terwijl het eindpunt wordt geconfigureerd. Voor nieuw gemaakte schaalsets worden alle exemplaarreparaties pas uitgevoerd nadat de respijtperiode is voltooid. Als u het automatisch herstellen van exemplaren in een schaalset wilt inschakelen, gebruikt u het object automaticRepairsPolicy in het virtuele-machineschaalsetmodel.

U kunt deze snelstartsjabloon ook gebruiken om een virtuele-machineschaalset te implementeren. De schaalset heeft een load balancer-statustest en automatische exemplaarreparaties ingeschakeld met een respijtperiode van 30 minuten.

Met de volgende stappen kunt u beleid voor automatische reparaties inschakelen bij het maken van een nieuwe schaalset.

  1. Ga naar Virtuele-machineschaalsets.
  2. Selecteer + Toevoegen om een nieuwe schaalset te maken.
  3. Ga naar het tabblad Status .
  4. Zoek de sectie Status .
  5. Schakel de optie Toepassingsstatus bewaken in.
  6. Zoek de sectie Beleid voor automatisch herstellen.
  7. Schakel de optie Automatische reparatie in.
  8. Geef in respijtperiode (min.) de respijtperiode op in minuten, toegestane waarden liggen tussen 10 en 90 minuten.
  9. Wanneer u klaar bent met het maken van de nieuwe schaalset, selecteert u de knop Beoordelen en maken .

Beleid voor automatische reparaties inschakelen bij het bijwerken van een bestaande schaalset

Voordat u beleid voor automatische reparaties inschakelt in een bestaande schaalset, moet u ervoor zorgen dat aan alle vereisten voor het aanmelden voor deze functie wordt voldaan. Het toepassingseindpunt moet correct worden geconfigureerd voor instanties van schaalsets om onbedoelde reparaties te voorkomen terwijl het eindpunt wordt geconfigureerd. Als u het automatisch herstellen van exemplaren in een schaalset wilt inschakelen, gebruikt u het object automaticRepairsPolicy in het virtuele-machineschaalsetmodel.

Nadat u het model van een bestaande schaalset hebt bijgewerkt, moet u ervoor zorgen dat het meest recente model wordt toegepast op alle exemplaren van de schaal. Raadpleeg de instructies voor het up-to-date brengen van VM's met het nieuwste schaalsetmodel.

U kunt het beleid voor automatische reparaties van een bestaande schaalset wijzigen via Azure Portal.

Notitie

Schakel de application health-extensie of load balancer-statustests in op uw virtuele-machineschaalsets voordat u de volgende stappen start.

  1. Ga naar een bestaande virtuele-machineschaalset.0
  2. Selecteer Status en herstel onder Instellingen in het menu aan de linkerkant.
  3. Schakel de optie Toepassingsstatus bewaken in.

Als u uw schaalset bewaakt met behulp van de Application Health-extensie:

  1. Kies de Application Health-extensie in de vervolgkeuzelijst Application Health Monitor.

  2. Kies in de vervolgkeuzelijst Protocol het netwerkprotocol dat door uw toepassing wordt gebruikt om de status te rapporteren. Selecteer het juiste protocol op basis van uw toepassingsvereisten. Protocolopties zijn HTTP, HTTPS of TCP.

  3. Typ in het vak Poortnummerconfiguratie de netwerkpoort die wordt gebruikt om de toepassingsstatus te bewaken.

  4. Geef voor Pad het pad naar het toepassingseindpunt op (bijvoorbeeld '/') dat wordt gebruikt om de toepassingsstatus te rapporteren.

    Notitie

    De extensie Application Health pingt dit pad binnen elke virtuele machine in de schaalset om de status van de toepassing voor elk exemplaar op te halen. Als u binaire statusstatussen gebruikt en het eindpunt reageert met een status 200 (OK), wordt het exemplaar gemarkeerd als 'In orde'. In alle andere gevallen (inclusief als het eindpunt onbereikbaar is), wordt het exemplaar gemarkeerd als Niet in orde. Verken Rich Health States voor meer opties voor de status van de status.

Als u uw schaalset bewaakt met behulp van SLB-statustests:

  • Kies load balancer-test in de vervolgkeuzelijst Application Health Monitor. Voor de statustest van de Load Balancer selecteert u een bestaande statustest of maakt u een nieuwe statustest voor bewaking.

Automatische reparaties inschakelen:

  1. Zoek de sectie Beleid voor automatisch herstellen.
  2. Schakel de optie Automatische reparatie in.
  3. Geef in respijtperiode (min.) de respijtperiode op in minuten. Toegestane waarden liggen tussen 10 en 90 minuten.
  4. Selecteer Opslaan als u klaar bent.

Een herstelactie configureren voor beleid voor automatische reparaties

Let op

De repairAction instelling, bevindt zich momenteel onder PREVIEW en is niet geschikt voor productieworkloads. Als u een voorbeeld van de herstelacties voor opnieuw opstarten en opnieuw installatiekopie wilt bekijken, moet u uw Azure-abonnement registreren met de AFEC-vlag AutomaticRepairsWithConfigurableRepairActions en moet uw compute-API-versie 2021-11-01 of hoger zijn. Zie Preview-functies instellen in een Azure-abonnement voor meer informatie.

Met de repairAction instelling onder automaticRepairsPolicy kunt u de gewenste herstelactie opgeven die wordt uitgevoerd als reactie op een beschadigde instantie. Als u de herstelactie voor een bestaand beleid voor automatische reparaties bijwerkt, moet u eerst automatische reparaties op de schaalset uitschakelen en opnieuw inschakelen met de bijgewerkte herstelactie. Dit proces wordt geïllustreerd in de onderstaande voorbeelden.

In dit voorbeeld ziet u hoe u de herstelactie op een schaalset bijwerkt met een bestaand beleid voor automatische reparaties. Gebruik API-versie 2021-11-01 of hoger.

Het bestaande beleid voor automatische reparaties op uw schaalset uitschakelen

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

Automatisch reparatiebeleid opnieuw inschakelen met de gewenste herstelactie

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

De servicestatus van het beleid voor automatische exemplaarreparaties weergeven en bijwerken

Gebruik de weergave Exemplaar ophalen met API-versie 2019-12-01 of hoger voor virtuele-machineschaalset om de serviceState weer te geven voor automatische reparaties onder de eigenschap orchestrationServices.

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

Gebruik Set Orchestration Service State om de serviceState te onderbreken of te hervatten voor automatische reparaties.

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

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

Problemen oplossen

Fout bij het inschakelen van beleid voor automatische reparaties

Als u een 'BadRequest'-fout krijgt met het bericht 'Kan lid 'automaticRepairsPolicy' niet vinden voor het object van het type 'properties'' en controleert u de API-versie die wordt gebruikt voor de virtuele-machineschaalset. API-versie 2018-10-01 of hoger is vereist voor deze functie.

Exemplaar wordt niet hersteld, zelfs niet wanneer beleid is ingeschakeld

Het exemplaar kan zich in respijtperiode bevindt. Deze periode is de hoeveelheid tijd die moet worden gewacht na een statuswijziging op het exemplaar voordat de reparaties worden uitgevoerd, wat helpt eventuele voortijdige of onopzettelijke reparaties te voorkomen. De herstelactie moet plaatsvinden zodra de respijtperiode voor het exemplaar is voltooid.

Status van de toepassing weergeven voor schaalsetexemplaren

U kunt de API Exemplaarweergave ophalen gebruiken voor exemplaren in een virtuele-machineschaalset om de status van de toepassing weer te geven. Met Azure PowerShell kunt u de cmdlet Get-AzVmssVM gebruiken met de vlag -InstanceView. De status van de toepassing wordt opgegeven onder de eigenschap vmHealth.

In Azure Portal kunt u ook de status zien. Ga naar een bestaande schaalset, selecteer Instanties in het menu aan de linkerkant en bekijk de kolom Status voor de status van elke schaalsetinstantie.

Volgende stappen

Meer informatie over het configureren van application Health-extensie of load balancer-statustests voor uw schaalsets .