Condividi tramite


Riparazioni automatiche delle istanze per Azure set di scalabilità di macchine virtuali

Importante

Le azioni Reimage e Restart repair sono attualmente in ANTEPRIMA. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale. Alcuni aspetti di questa funzionalità potrebbero subire modifiche prima della disponibilità a livello generale.

L'abilitazione delle riparazioni automatiche delle istanze per Azure set di scalabilità di macchine virtuali consente di ottenere disponibilità elevata per le applicazioni mantenendo un set di istanze integre. Se un'istanza non integra viene rilevata dall'estensione integrità dell'applicazione o dai probe di integrità del servizio di bilanciamento del carico, le riparazioni automatiche tenteranno di ripristinare l'istanza attivando azioni di ripristino come l'eliminazione dell'istanza non integra e la creazione di una nuova istanza per sostituirla, ricreando l'istanza non integra (anteprima) o riavviando l'istanza non integra (anteprima).

Requisiti per l'uso delle riparazioni automatiche delle istanze

Abilitare il monitoraggio dell'integrità delle applicazioni per il set di scalabilità

Il set di scalabilità deve avere il monitoraggio dell'integrità delle applicazioni per le istanze abilitate. Il monitoraggio dell'integrità può essere eseguito usando l'estensione Integrità applicazioni o i probe di integrità del servizio di bilanciamento del carico, in cui è possibile abilitare solo uno alla volta. L'estensione per l'integrità dell'applicazione o i probe del servizio di bilanciamento del carico ese eseguito il ping dell'endpoint applicazione configurato nelle istanze della macchina virtuale per determinare lo stato di integrità dell'applicazione. Questo stato di integrità viene usato dall'agente di orchestrazione del set di scalabilità per monitorare l'integrità dell'istanza ed eseguire le riparazioni quando necessario.

Configurare l'endpoint per fornire lo stato di integrità

Prima di abilitare i criteri di ripristino automatico delle istanze, assicurarsi che le istanze del set di scalabilità abbiano un endpoint dell'applicazione configurato per generare lo stato di integrità dell'applicazione. Per configurare lo stato di integrità nell'estensione Integrità applicazione, è possibile usare Stati di integrità binario o Stati di integrità avanzata. Per configurare lo stato di integrità usando i probe di integrità del servizio di bilanciamento del carico, vedere Comportamento del probe.

Per le istanze contrassegnate come "Non integro" o "Sconosciuto" (lo stato sconosciuto è disponibile solo con l'estensione Integrità applicazioni - Stati avanzati di integrità), le riparazioni automatiche vengono attivate dal set di scalabilità. Assicurarsi che l'endpoint dell'applicazione sia configurato correttamente prima di abilitare i criteri di riparazione automatica per evitare riparazioni impreviste dell'istanza, mentre l'endpoint viene configurato.

Versione DELL'API

I criteri di riparazione automatica sono supportati per l'API di calcolo versione 2018-10-01 o successiva.

L'impostazione repairAction per Reimage (Preview) e Restart (Preview) è supportata per le versioni dell'API di calcolo 2021-11-01 o successive.

Restrizioni relative a spostamenti di risorse o sottoscrizioni

Gli spostamenti di risorse o sottoscrizioni non sono attualmente supportati per i set di scalabilità quando è abilitata la funzionalità di riparazione automatica.

Restrizione per i set di scalabilità di Service Fabric

Questa funzionalità non è attualmente supportata per i set di scalabilità di Service Fabric.

Restrizione per le macchine virtuali con errori di provisioning

Le riparazioni automatiche attualmente non supportano scenari in cui un'istanza di macchina virtuale è contrassegnata come non integra a causa di un errore di provisioning. Le macchine virtuali devono essere inizializzate correttamente per abilitare il monitoraggio dell'integrità e le funzionalità di ripristino automatico.

Come funzionano le riparazioni automatiche delle istanze?

La funzionalità di ripristino automatico dell'istanza si basa sul monitoraggio dell'integrità delle singole istanze in un set di scalabilità. Le istanze di macchine virtuali in un set di scalabilità possono essere configurate per generare lo stato di integrità dell'applicazione usando l'estensione integrità dell'applicazione o i probe di integrità del servizio di bilanciamento del carico. Se viene trovata un'istanza non integra, il set di scalabilità eseguirà un'azione di ripristino preconfigurata nell'istanza non integra. Le riparazioni automatiche delle istanze possono essere abilitate nel modello del set di scalabilità di macchine virtuali usando l'oggetto automaticRepairsPolicy .

Il processo di riparazione automatica delle istanze è il seguente:

  1. L'estensione integrità dell'applicazione o i probe di integrità del servizio di bilanciamento del carico esepongono il ping dell'endpoint dell'applicazione all'interno di ogni macchina virtuale nel set di scalabilità per ottenere lo stato di integrità dell'applicazione per ogni istanza.
  2. Se l'endpoint risponde con uno stato 200 (OK), l'istanza viene contrassegnata come "Integro". In tutti gli altri casi (incluso se l'endpoint non è raggiungibile), l'istanza è contrassegnata come "Non integro".
  3. Quando viene trovata un'istanza non integra, il set di scalabilità applica l'azione di ripristino configurata (il valore predefinito è Replace) all'istanza non integra.
  4. Le riparazioni delle istanze vengono eseguite in batch. In qualsiasi momento, non vengono ripristinate più del 5% delle istanze totali nel set di scalabilità. Se un set di scalabilità ha meno di 20 istanze, le riparazioni vengono eseguite per un'istanza non integra alla volta.
  5. Il processo precedente continua fino a quando non viene ripristinata tutta l'istanza non integra nel set di scalabilità.

Azioni di ripristino disponibili

Attenzione

L'impostazione repairAction è attualmente in ANTEPRIMA e non è adatta per i carichi di lavoro di produzione. Per visualizzare in anteprima le azioni di ripristino di riavvio e ricreazione dell'immagine , è necessario registrare la sottoscrizione di Azure con il flag AutomaticRepairsWithConfigurableRepairActions AFEC e la versione dell'API di calcolo deve essere 2021-11-01 o successiva. Per altre informazioni, vedere Configurare le funzionalità di anteprima nella sottoscrizione di Azure.

Sono disponibili tre azioni di ripristino per le riparazioni automatiche delle istanze: Sostituisci, Ricrea immagine (anteprima) e Riavvia (anteprima). L'azione di ripristino predefinita è Replace, ma è possibile passare a Reimage (Preview) o Restart (Preview) registrando l'anteprima e modificando l'impostazione sotto automaticRepairsPolicy l'oggettorepairAction.

  • Sostituisce elimina l'istanza non integra e crea una nuova istanza per sostituirla. Il modello più recente del set di scalabilità di macchine virtuali viene usato per creare la nuova istanza. Questa azione di ripristino è l'impostazione predefinita.

  • Reimage applica l'operazione di ricreazione dell'immagine all'istanza non integra.

  • Il riavvio applica l'operazione di riavvio all'istanza non integra.

Nella tabella seguente vengono confrontate le differenze tra tutte e tre le azioni di ripristino:

Azione di ripristino ID istanza di macchina virtuale mantenuto? Ip privato mantenuto? Disco dati gestito mantenuto? Disco del sistema operativo gestito mantenuto? Disco locale (temporaneo) mantenuto?
Sostituzione No No No No No
Ricreare l'immagine No
Riavviare

Per informazioni dettagliate sull'aggiornamento dell'azione di ripristino nei criteri di riparazione automatica, vedere la sezione configurare un'azione di ripristino sui criteri di riparazione automatica.

Batch

Le operazioni di ripristino automatico dell'istanza vengono eseguite in batch. In qualsiasi momento, non più del 5% delle istanze nel set di scalabilità vengono ripristinate tramite i criteri di riparazione automatica. Questo processo consente di evitare l'eliminazione simultanea e la ricreazione di un numero elevato di istanze, se rilevate contemporaneamente non integre.

Periodo di prova

Quando un'istanza passa attraverso un'operazione di modifica dello stato a causa di un'azione PUT, PATCH o POST eseguita nel set di scalabilità, qualsiasi azione di ripristino su tale istanza viene eseguita solo dopo il termine del periodo di tolleranza. Il periodo di tolleranza è la quantità di tempo per consentire all'istanza di tornare allo stato integro. Il periodo di tolleranza inizia dopo il completamento della modifica dello stato, che consente di evitare eventuali operazioni di ripristino premature o accidentali. Il periodo di tolleranza viene rispettato per qualsiasi istanza appena creata nel set di scalabilità, incluso quello creato in seguito all'operazione di ripristino. Il periodo di tolleranza viene specificato in minuti in formato ISO 8601 e può essere impostato usando la proprietà automaticRepairsPolicy.gracePeriod. Il periodo di tolleranza può variare tra 10 minuti e 90 minuti e ha un valore predefinito di 10 minuti.

Sospensione delle riparazioni

set di scalabilità di macchine virtuali fornire la possibilità di sospendere temporaneamente le riparazioni automatiche dell'istanza, se necessario. ServiceState per le riparazioni automatiche nella proprietà orchestrationServices nella visualizzazione dell'istanza del set di scalabilità di macchine virtuali mostra lo stato corrente delle riparazioni automatiche. Quando un set di scalabilità viene optato per le riparazioni automatiche, il valore del parametro serviceState è impostato su In esecuzione. Quando le riparazioni automatiche vengono sospese per un set di scalabilità, il parametro serviceState è impostato su Suspended. Se automaticRepairsPolicy è definito in un set di scalabilità ma la funzionalità di riparazione automatica non è abilitata, il parametro serviceState è impostato su Non in esecuzione.

Se le istanze appena create per sostituire quelle non integre in un set di scalabilità continuano a rimanere non integre anche dopo l'esecuzione ripetuta delle operazioni di ripristino, come misura di sicurezza la piattaforma aggiorna serviceState per le riparazioni automatiche in Suspended. È possibile riprendere le riparazioni automatiche impostando il valore di serviceState per le riparazioni automatiche su In esecuzione. Le istruzioni dettagliate sono disponibili nella sezione relativa alla visualizzazione e all'aggiornamento dello stato del servizio dei criteri di ripristino automatici per il set di scalabilità.

È anche possibile configurare le regole di avviso di Azure per monitorare le modifiche di serviceState e ricevere una notifica se le riparazioni automatiche vengono sospese nel set di scalabilità. Per informazioni dettagliate, vedere Usare le regole di avviso di Azure per monitorare le modifiche nello stato del servizio di ripristino automatico delle istanze.

Protezione delle istanze e riparazioni automatiche

Se un'istanza di un set di scalabilità è protetta applicando uno dei criteri di protezione, le riparazioni automatiche non vengono eseguite su tale istanza. Questo comportamento si applica a entrambi i criteri di protezione: proteggere da azioni con scalabilità orizzontale e Proteggi dalle azioni del set di scalabilità.

Terminare la notifica e le riparazioni automatiche

Se la funzionalità di notifica di terminazione è abilitata in un set di scalabilità, durante un'operazione di sostituzione , l'eliminazione di un'istanza non integra segue la configurazione di terminazione della notifica. Una notifica di terminazione viene inviata tramite il servizio metadati di Azure, ovvero gli eventi pianificati, e l'eliminazione dell'istanza viene ritardata durante il timeout del ritardo configurato. Tuttavia, la creazione di una nuova istanza per sostituire quella non integra non attende il completamento del timeout di ritardo.

Abilitazione dei criteri di riparazione automatica durante la creazione di un nuovo set di scalabilità

Importante

A partire da novembre 2023, i set di scalabilità di macchine virtuali creati con PowerShell e l'interfaccia della riga di comando di Azure avranno per impostazione predefinita la modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per altre informazioni su questa modifica e sulle azioni da eseguire, vedere Modifica che causa un'interruzione per i clienti di PowerShell/CLI di VMSS - Hub della community Microsoft

Per abilitare i criteri di ripristino automatico durante la creazione di un nuovo set di scalabilità, assicurarsi che siano soddisfatti tutti i requisiti per acconsentire esplicitamente a questa funzionalità. L'endpoint dell'applicazione deve essere configurato correttamente per le istanze del set di scalabilità per evitare l'attivazione di riparazioni impreviste durante la configurazione dell'endpoint. Per i nuovi set di scalabilità creati, tutte le riparazioni di istanze vengono eseguite solo dopo il completamento del periodo di tolleranza. Per abilitare il ripristino automatico dell'istanza in un set di scalabilità, usare l'oggetto automaticRepairsPolicy nel modello del set di scalabilità di macchine virtuali.

È anche possibile usare questo modello di avvio rapido per distribuire un set di scalabilità di macchine virtuali. Il set di scalabilità ha un probe di integrità del servizio di bilanciamento del carico e le riparazioni automatiche delle istanze abilitate con un periodo di tolleranza di 30 minuti.

La procedura seguente consente di abilitare i criteri di ripristino automatico durante la creazione di un nuovo set di scalabilità.

  1. Passare a set di scalabilità di macchine virtuali.
  2. Selezionare + Aggiungi per creare un nuovo set di scalabilità.
  3. Passare alla scheda Integrità.
  4. Individuare la sezione Integrità.
  5. Abilitare l'opzione Monitorare l'integrità dell'applicazione.
  6. Individuare la sezione Criteri di ripristino automatico.
  7. Attivare l'opzione Riparazioni automatiche.
  8. In Periodo di tolleranza (min) specificare il periodo di tolleranza in minuti, i valori consentiti sono compresi tra 10 e 90 minuti.
  9. Al termine della creazione del nuovo set di scalabilità, selezionare pulsante Rivedi e crea.

Abilitazione dei criteri di riparazione automatica durante l'aggiornamento di un set di scalabilità esistente

Prima di abilitare i criteri di ripristino automatico in un set di scalabilità esistente, assicurarsi che vengano soddisfatti tutti i requisiti per acconsentire esplicitamente a questa funzionalità. L'endpoint dell'applicazione deve essere configurato correttamente per le istanze del set di scalabilità per evitare l'attivazione di riparazioni impreviste durante la configurazione dell'endpoint. Per abilitare il ripristino automatico dell'istanza in un set di scalabilità, usare l'oggetto automaticRepairsPolicy nel modello del set di scalabilità di macchine virtuali.

Dopo aver aggiornato il modello di un set di scalabilità esistente, assicurarsi che il modello più recente venga applicato a tutte le istanze della scala. Vedere le istruzioni su come aggiornare le macchine virtuali con il modello di set di scalabilità più recente.

È possibile modificare i criteri di riparazione automatica di un set di scalabilità esistente tramite il portale di Azure.

Nota

Abilitare l'estensione integrità dell'applicazione o i probe di integrità di Load Balancer nel set di scalabilità di macchine virtuali prima di iniziare i passaggi successivi.

  1. Passare a un set di scalabilità di macchine virtuali esistente.0
  2. In Impostazioni nel menu a sinistra selezionare Integrità e riparazione.
  3. Abilitare l'opzione Monitorare l'integrità dell'applicazione.

Se si sta monitorando il set di scalabilità usando l'estensione Integrità applicazione:

  1. Scegliere Estensione integrità applicazione dall'elenco a discesa Monitoraggio integrità applicazioni.

  2. Nell'elenco a discesa Protocollo scegliere il protocollo di rete usato dall'applicazione per segnalare l'integrità. Selezionare il protocollo appropriato in base ai requisiti dell'applicazione. Le opzioni del protocollo sono HTTP, HTTPS o TCP.

  3. Nella casella Configurazione numero porta digitare la porta di rete usata per monitorare l'integrità dell'applicazione.

  4. In Percorso specificare il percorso dell'endpoint dell'applicazione (ad esempio, "/") usato per segnalare l'integrità dell'applicazione.

    Nota

    L'estensione Integrità applicazione eseguirà il ping di questo percorso all'interno di ogni macchina virtuale nel set di scalabilità per ottenere lo stato di integrità dell'applicazione per ogni istanza. Se si usano stati di integrità binari e l'endpoint risponde con uno stato 200 (OK), l'istanza viene contrassegnata come "Integro". In tutti gli altri casi (incluso se l'endpoint non è raggiungibile), l'istanza è contrassegnata come "Non integro". Per altre opzioni relative allo stato di integrità, vedere Stati di integrità avanzati.

Se si sta monitorando il set di scalabilità usando probe di integrità SLB:

  • Scegliere Probe di bilanciamento del carico dall'elenco a discesa Monitoraggio integrità applicazioni. Per il probe di integrità del servizio di bilanciamento del carico, selezionare un probe di integrità esistente o creare un nuovo probe di integrità per il monitoraggio.

Per abilitare le riparazioni automatiche:

  1. Individuare la sezione Criteri di ripristino automatico.
  2. Attivare l'opzione Riparazioni automatiche.
  3. In Periodo di tolleranza (min) specificare il periodo di tolleranza in minuti. I valori consentiti sono compresi tra 10 e 90 minuti.
  4. Al termine, seleziona Salva.

Configurare un'azione di ripristino sui criteri di riparazione automatica

Attenzione

L'impostazione repairAction è attualmente in ANTEPRIMA e non è adatta per i carichi di lavoro di produzione. Per visualizzare in anteprima le azioni di ripristino di riavvio e ricreazione dell'immagine , è necessario registrare la sottoscrizione di Azure con il flag AutomaticRepairsWithConfigurableRepairActions AFEC e la versione dell'API di calcolo deve essere 2021-11-01 o successiva. Per altre informazioni, vedere Configurare le funzionalità di anteprima nella sottoscrizione di Azure.

L'impostazione repairAction in automaticRepairsPolicy consente di specificare l'azione di ripristino desiderata eseguita in risposta a un'istanza non integra. Se si aggiorna l'azione di ripristino in un criterio di ripristino automatico esistente, è necessario prima disabilitare le riparazioni automatiche nel set di scalabilità e riabilitare con l'azione di ripristino aggiornata. Questo processo è illustrato negli esempi seguenti.

In questo esempio viene illustrato come aggiornare l'azione di ripristino in un set di scalabilità con un criterio di ripristino automatico esistente. Usare l'API versione 2021-11-01 o successiva.

Disabilitare i criteri di ripristino automatico esistenti nel set di scalabilità

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

Riabilitare i criteri di riparazione automatica con l'azione di ripristino desiderata

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

Visualizzazione e aggiornamento dello stato del servizio dei criteri di riparazione automatica delle istanze

Usare Get Instance View with API version 2019-12-01 or higher for Virtual Machine Scale Set (Ottieni visualizzazione istanza con API versione 2019-12-01 o successiva) per il set di scalabilità di macchine virtuali per visualizzare serviceState per le riparazioni automatiche nella proprietà orchestrationServices.

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

Usare Set Orchestration Service State (Imposta stato del servizio di orchestrazione) per sospendere o riprendere serviceState per le riparazioni automatiche.

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

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

Risoluzione dei problemi

Mancata abilitazione dei criteri di riparazione automatica

Se viene visualizzato un errore "BadRequest" con un messaggio che indica che non è stato possibile trovare il membro 'automaticRepairsPolicy' nell'oggetto di tipo 'properties', controllare la versione dell'API usata per il set di scalabilità di macchine virtuali. Per questa funzionalità è necessaria la versione API 2018-10-01 o successiva.

L'istanza non viene ripristinata anche quando i criteri sono abilitati

L'istanza potrebbe essere nel periodo di tolleranza. Questo periodo è la quantità di tempo di attesa dopo qualsiasi modifica dello stato nell'istanza prima di eseguire riparazioni, che consente di evitare eventuali riparazioni premature o accidentali. L'azione di ripristino deve essere eseguita una volta completato il periodo di tolleranza per l'istanza.

Visualizzazione dello stato di integrità dell'applicazione per le istanze del set di scalabilità

È possibile usare l'API Get Instance View per le istanze in un set di scalabilità di macchine virtuali per visualizzare lo stato di integrità dell'applicazione. Con Azure PowerShell è possibile usare il cmdlet Get-AzVmssVM con il flag -InstanceView. Lo stato di integrità dell'applicazione viene fornito nella proprietà vmHealth.

Nella portale di Azure è possibile visualizzare anche lo stato di integrità. Passare a un set di scalabilità esistente, selezionare Istanze dal menu a sinistra e esaminare la colonna Stato integrità per lo stato di integrità di ogni istanza del set di scalabilità.

Passaggi successivi

Informazioni su come configurare l'estensione integrità delle applicazioni o i probe di integrità del servizio di bilanciamento del carico per i set di scalabilità.