Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genom att aktivera automatiska instansreparationer för Azure Virtual Machine Scale Sets kan du uppnå hög tillgänglighet för program genom att upprätthålla en uppsättning felfria instanser. Om en instans med feltillstånd hittas av programhälsotillägget eller lastbalanserarens hälsoavsökningar försöker automatiska instansreparationer återställa instansen genom att utlösa reparationsåtgärder som att ta bort den felaktiga instansen och skapa en ny för att ersätta den, återskapa den felaktiga instansen eller starta om den felaktiga instansen.
Krav för att använda automatiska instansreparationer
Aktivera övervakning av programhälsa för skalningsuppsättning
Skalningsuppsättningen bör ha programhälsoövervakning för instanser aktiverad. Hälsoövervakning kan göras med antingen Application Health-tillägget eller Lastbalanserarens hälsoavsökningar, där endast en kan aktiveras i taget. Programhälsotillägget eller avsökningar från lastbalanseraren pingar programapplikationens slutpunkt som konfigurerats på virtuella maskininstanser för att bestämma applikationens hälsostatus. Den här hälsostatusen används av skalningsuppsättningsorkestratorn för att övervaka instanshälsan och utföra reparationer vid behov.
Konfigurera slutpunkten för att ange hälsostatus
Innan du aktiverar principen för automatiska instansreparationer kontrollerar du att dina skalningsuppsättningsinstanser har en programslutpunkt konfigurerad för att generera programmets hälsostatus. Om du vill konfigurera hälsostatus för Application Health-tillägget kan du använda antingen binärt hälsotillstånd eller Rich Health States. Information om hur du konfigurerar hälsostatus med hjälp av hälsoavsökningar för lastbalanserare finns i avsökningsbeteende.
För instanser som har markerats som "Ohälsosamma" eller "Okända" (okänt tillstånd är endast tillgängligt med Application Health-tillägget – Rich Health States) utlöses automatiska reparationer av skaletset. Kontrollera att programslutpunkten är korrekt konfigurerad innan du aktiverar principen för automatiska reparationer för att undvika oavsiktliga instansreparationer medan slutpunkten konfigureras.
API-version
Principen för automatiska reparationer stöds för beräknings-API version 2018-10-01 eller senare.
Inställningen repairAction för Reimage och Restart stöds för beräknings-API-versionerna 2021-11-01 eller senare.
Begränsningar för flytt av resurser eller prenumerationer
För närvarande stöds inte resurs- eller prenumerationsflyttningar för skaluppsättningar när funktionen för automatiska reparationer är aktiverad.
Begränsning för Service Fabric Scale Sets
Den här funktionen stöds för närvarande inte för Service Fabric-skalningsuppsättningar.
Begränsning för virtuella datorer med etableringsfel
Automatiska reparationer stöder för närvarande inte scenarier där en virtuell datorinstans har markerats som Felaktig på grund av ett etableringsfel. Virtuella datorer måste framgångsrikt initieras för att möjliggöra hälsokontroll och automatisk reparationskapacitet.
Hur fungerar automatiska instansreparationer?
Funktionen för automatisk instansreparation är beroende av hälsoövervakning av enskilda instanser i en skalningsuppsättning. VM-instanser i en skalningsuppsättning kan konfigureras för att generera programhälsostatus med hjälp av antingen Application Health-tillägget eller Lastbalanserarens hälsoavsökningar. Om en instans visar sig vara felaktig utför skalningsuppsättningen en förkonfigurerad reparationsåtgärd på den felaktiga instansen. Automatiska instansreparationer kan aktiveras i modellen för VM-skalningsuppsättningar med hjälp av automaticRepairsPolicy-objektet.
Processen för automatiska instansreparationer går enligt följande:
- Hälsoavsökningar för programhälsa eller lastbalanserare pingar programslutpunkten i varje virtuell dator i skalningsuppsättningen för att hämta programmets hälsostatus för varje instans.
- Om slutpunkten svarar med statusen 200 (OK) markeras instansen som "Felfri". I alla andra fall (inklusive om endpunkten inte kan nås) markeras instansen som "Ohälsosam".
- När en instans visar sig vara felaktig tillämpar skalningsuppsättningen den konfigurerade reparationsåtgärden (standard är Ersätt) på den felaktiga instansen.
- Instansreparationer utförs i batchar. Vid en viss tidpunkt repareras inte mer än 5 % av de totala instanserna i skalningsuppsättningen. Om en skalsats har färre än 20 instanser utförs reparationerna för en ohälsosam instans åt gången.
- Ovanstående process fortsätter tills alla ohälsosamma instanser i skalan repareras.
Tillgängliga reparationsåtgärder
Det finns tre tillgängliga reparationsåtgärder för automatiska instansreparationer – Replace, Reimage och Restart. Standardreparationsåtgärden är Ersätt, men du kan konfigurera automatiska reparationer för att använda Reimage eller Starta om genom att repairAction ändra inställningen under automaticRepairsPolicy objektet.
Kommentar
Automatiska reparationer med åtgärden Ersätt skapar alltid nya virtuella datorer baserat på den aktuella VMSS-modellen. Om du har anslutit virtuella datorer med konfigurationer som skiljer sig från VMSS-modellen bevaras inte dessa skillnader. Den nya virtuella datorn matchar den aktuella VMSS-modellen, inte konfigurationen av den borttagna virtuella datorn.
- Ersätt tar bort den felaktiga instansen och skapar en ny instans som ersätter den. Den senaste VM-skalningsuppsättningsmodellen används för att skapa den nya instansen. Den här reparationsåtgärden är standard.
- Reimage tillämpar återimeringsåtgärden på den felaktiga instansen.
- Omstart tillämpar omstartsåtgärden på den ohälsosamma instansen.
I följande tabell jämförs skillnaderna mellan alla tre reparationsåtgärderna:
| Reparationsåtgärd | Är VM-instans-ID bevarat? | Är den privata IP-adressen bevarad? | Är den hanterade datadisken bevarad? | Hanterad OS-disk bevarad? | Har den lokala (tillfälliga) disken behållits? |
|---|---|---|---|---|---|
| Ersätt (standard) | Nej | Nej | Nej | Nej | Nej |
| Återställ avbildning | Ja | Ja | Ja | Nej | Ja |
| Starta om | Ja | Ja | Ja | Ja | Ja |
Mer information om hur du uppdaterar reparationsåtgärden under principen för automatiska reparationer finns i avsnittet konfigurera en reparationsåtgärd för principer för automatiska reparationer.
Batchbearbetning
De automatiska instansreparationsåtgärderna utförs i batchar. Vid varje given tidpunkt repareras inte mer än 5 % av instanserna i skaluppsättningen via principen för automatiska reparationer. Den här processen hjälper till att undvika samtidig borttagning och återskapande av ett stort antal instanser om de påträffas som ohälsosamma samtidigt.
Respitperiod
När en instans genomgår en tillståndsändringsåtgärd på grund av en PUT-, PATCH- eller POST-åtgärd som utförs på skalningsuppsättningen utförs alla reparationsåtgärder på den instansen först när respitperioden är slut. Respitperiod är den tid en instans behöver för att kunna återgå till friskt tillstånd. Respitperioden börjar efter att tillståndsändringen har slutförts, vilket hjälper till att undvika för tidiga eller oavsiktliga reparationsåtgärder. Respitperioden respekteras för alla nyligen skapade instanser i skalningsuppsättningen, inklusive den som skapats till följd av reparationsåtgärden. Respitperiod anges i minuter i ISO 8601-format och kan anges med egenskapen automaticRepairsPolicy.gracePeriod. Respitperioden kan variera mellan 10 minuter och 90 minuter och har ett standardvärde på 10 minuter.
Avbrott i reparationer
Vm-skalningsuppsättningar ger möjlighet att tillfälligt pausa automatiska instansreparationer om det behövs. ServiceState för automatiska reparationer under egenskapen orchestrationServices i instansvyn för Virtual Machine Scale Set visar det aktuella tillståndet för de automatiska reparationerna. När en skalningsuppsättning har valts för automatiska reparationer anges värdet för parametern serviceState till Körs. När de automatiska reparationerna pausas för en skalningsuppsättning är parametern serviceState inställd på Pausad. Om automaticRepairsPolicy är definierad på en skalningsuppsättning men funktionen för automatiska reparationer inte är aktiverad, ställs parametern serviceState in på Inte körande.
Om nyligen skapade instanser för att ersätta de felaktiga instanserna i en skalningsuppsättning fortsätter att vara felfria även efter upprepade reparationsåtgärder, uppdaterar plattformen som en säkerhetsåtgärd serviceState för automatiska reparationer till Pausad. Du kan återuppta de automatiska reparationerna igen genom att ange värdet för serviceState för automatiska reparationer till Körs. Detaljerade instruktioner finns i avsnittet om att visa och uppdatera tjänsttillståndet för principen för automatiska reparationer för din skalningsuppsättning.
Du kan också konfigurera Azure Alert Rules för att övervaka serviceState-ändringar och få ett meddelande om automatiska reparationer pausas på din skalningsuppsättning. För mer information, se Använd Azure-aviseringsregler för att övervaka ändringar i tjänstestatus för automatiska reparationer av instanser.
Instansskydd och automatiska reparationer
Om en instans i en skalningsuppsättning skyddas genom att tillämpa någon av skyddsprinciperna utförs inte automatiska reparationer på den instansen. Det här beteendet gäller för båda skyddsprinciperna: Skydda mot inskalning och Skydda mot skalningsuppsättningsåtgärder .
Avsluta aviseringar och automatiska reparationer
Om funktionen termineringsmeddelande är aktiverad på en skalningsuppsättning följer borttagningen av en ohälsosam instans konfigurationen för termineringsmeddelande under en ersättningsåtgärd. Ett avisering om att avsluta skickas via Azure-metadatatjänsten – schemalagda händelser – och borttagningen av instanser fördröjs under tidsgränsen för den konfigurerade fördröjningen. Men skapandet av en ny instans för att ersätta den ohälsosamma görs inte efter att fördröjningens tidsgräns är uppnådd.
Aktivera principen för automatiska reparationer när du skapar en ny skalningsuppsättning
Viktigt!
Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard använda flexibelt orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Icke-bakåtkompatibla ändringar för VMSS PowerShell/CLI-kunder – Microsoft Community Hub
Om du vill aktivera principen för automatiska reparationer när du skapar en ny skalningsuppsättning kontrollerar du att alla krav för att välja den här funktionen uppfylls. Programslutpunkten bör vara korrekt konfigurerad för instanser i skalningsuppsättningen för att undvika att oavsiktliga reparationer utlöses medan slutpunkten konfigureras. För nyligen skapade skalsatser utförs alla instansreparationer endast efter att fördröjningsperioden har slutförts. Om du vill aktivera automatisk instansreparation i en skalningsuppsättning använder du automaticRepairsPolicy-objektet i vm-skalningsuppsättningsmodellen.
Du kan också använda den här snabbstartsmallen för att distribuera en VM-skalningsuppsättning. I snabbstarten har skalningsuppsättningen en hälsoavsökning för lastbalanseraren och automatiska instansreparationer aktiverade med en konfigurerad respitperiod på 30 minuter.
Följande steg aktiverar principen för automatisk reparation när du skapar en ny skalningsuppsättning.
- Gå till Virtuella maskinskalningsuppsättningar.
- Välj + Lägg till för att skapa en ny skalningsuppsättning.
- Gå till fliken Hälsa .
- Leta upp avsnittet Hälsa.
- Aktivera alternativet Övervaka programmets hälsotillstånd .
- Leta upp avsnittet Automatisk reparationsprincip .
- Aktivera alternativet Automatiska reparationer.
- I Respitperiod (min)anger du respitperioden i minuter, tillåtna värden är mellan 10 och 90 minuter.
- När du är klar med att skapa den nya skalningsuppsättningen väljer du knappen Granska + skapa .
Aktivera principen för automatiska reparationer när du uppdaterar en befintlig skalningssats
Innan du aktiverar principen för automatiska reparationer i en befintlig skalningsuppsättning ska du se till att alla krav för att välja den här funktionen uppfylls. Programslutpunkten bör vara korrekt konfigurerad för instanser i skalningsuppsättningen för att undvika att oavsiktliga reparationer utlöses medan slutpunkten konfigureras. Om du vill aktivera automatisk instansreparation i en skalningsuppsättning använder du automaticRepairsPolicy-objektet i vm-skalningsuppsättningsmodellen.
När du har uppdaterat modellen för en befintlig skalningsuppsättning kontrollerar du att den senaste modellen tillämpas på alla instanser av skalan. Se instruktionen om att uppdatera virtuella datorer med den senaste skalningsuppsättningsmodellen.
Du kan ändra principen för automatiska reparationer för en befintlig skalningsuppsättning via Azure-portalen.
Kommentar
Aktivera Application Health-tillägget eller Load Balancer-hälsoavsökningarna på dina Virtual Machine Scale Sets innan du påbörjar nästa steg.
- Gå till en befintlig VM-skalningsuppsättning.0
- Under Inställningar i menyn till vänster väljer du Hälsa och reparation.
- Aktivera alternativet Övervaka programmets hälsotillstånd .
Om du övervakar din skalningsuppsättning med hjälp av Applikationshälsa-tillägget:
Välj Application Health-tillägget i listrutan Övervakare av programhälsa.
I listrutan Protokoll väljer du det nätverksprotokoll som används av ditt program för att rapportera hälsotillståndet. Välj lämpligt protokoll baserat på dina programkrav. Protokollalternativen är HTTP, HTTPS eller TCP.
I rutan Portnummerkonfiguration skriver du den nätverksport som används för att övervaka programmets hälsotillstånd.
För Sökväg anger du den programslutpunktssökväg (till exempel "/") som används för att rapportera programmets hälsotillstånd.
Kommentar
Application Health-tillägget pingar den här sökvägen i varje virtuell dator i skalningsuppsättningen för att hämta programmets hälsostatus för varje instans. Om du använder binärt hälsotillstånd och slutpunkten svarar med statusen 200 (OK) markeras instansen som "Felfri". I alla andra fall (inklusive om endpunkten inte kan nås) markeras instansen som "Ohälsosam". Om du vill ha fler alternativ för hälsotillstånd kan du utforska Rich Health States.
Om du övervakar din skalgrupp med SLB-hälsosonder:
- Välj Lastbalanserareavsökning i listrutan Programhälsaövervakare.– För hälsoavsökningen load balancer väljer du en befintlig hälsoavsökning eller skapar en ny hälsoavsökning för övervakning.
Så här aktiverar du automatiska reparationer:
- Leta upp avsnittet Automatisk reparationsprincip .
- Aktivera alternativet Automatiska reparationer.
- I Respitperiod (min) specificerar du respitperioden i minuter. Tillåtna värden är mellan 10 och 90 minuter.
- När du är klar väljer du Spara.
Konfigurera en åtgärd för reparation i policyn för automatiska reparationer
Med repairAction inställningen under automaticRepairsPolicy kan du ange önskad reparationsåtgärd som utförs som svar på en instans med feltillstånd. Om du uppdaterar reparationsåtgärden för en befintlig princip för automatiska reparationer måste du först inaktivera automatiska reparationer på skalningsuppsättningen och återaktivera med den uppdaterade reparationsåtgärden. Den här processen visas i exemplen nedan.
Det här exemplet visar hur du uppdaterar reparationsåtgärden på en skalningsuppsättning med en befintlig princip för automatiska reparationer. Använd API-version 2021-11-01 eller senare.
Inaktivera den befintliga principen för automatiska reparationer på din skalningsuppsättning
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "false"
}
}
}
Återaktivera principen för automatiska reparationer med önskad reparationsåtgärd
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"
}
}
}
Visa och uppdatera tjänsttillståndet för principen för automatiska instansreparationer
Använd Hämta instansvy med API-version 2019-12-01 eller senare för Virtual Machine Scale Set för att se serviceState för automatiska reparationer under egenskapen orchestrationServices.
GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
"orchestrationServices": [
{
"serviceName": "AutomaticRepairs",
"serviceState": "Running"
}
]
}
Använd Set Orchestration Service State för att pausa eller återuppta serviceState för automatiska reparationer.
POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'
{
"serviceName": "AutomaticRepairs",
"action": "Suspend"
}
Felsöka
Det gick inte att aktivera principen för automatiska reparationer
Om du får felet "BadRequest" med meddelandet "Det gick inte att hitta medlemmen 'automaticRepairsPolicy' för objektet av typen 'egenskaper', bör du kontrollera den API-version som används för virtuell maskinskalningsuppsättning. API-version 2018-10-01 eller senare krävs för den här funktionen.
Instansen repareras inte ens när principen är aktiverad
Instansen kan vara i respitperiod. Den här perioden är den tid som ska vänta efter tillståndsändringar på instansen innan du utför reparationer, vilket hjälper till att undvika eventuella för tidiga eller oavsiktliga reparationer. Reparationsåtgärden bör utföras när respitperioden har slutförts för instansen.
Visa applikationens hälsostatus för skalningsgruppsinstanser
Du kan använda API:t Hämta instansvy för instanser i en VM-skalningsuppsättning för att visa applikationens hälsostatus. Med Azure PowerShell kan du använda cmdleten Get-AzVmssVM med flaggan -InstanceView . Programmets hälsostatus anges under egenskapen vmHealth.
I Azure Portal kan du också se hälsostatusen. Gå till en befintlig skalningsuppsättning, välj Instanser på menyn till vänster och titta på kolumnen Hälsotillstånd för hälsostatus för varje skalningsuppsättningsinstans.
Nästa steg
Lär dig hur du konfigurerar Application Health-tillägg eller hälsokontroller för lastbalanserare för dina skalningsuppsättningar.