Questo documento descrive come configurare un controllo di integrità basato sull'applicazione per riparazione automatica delle VM in un gruppo di istanze gestite. Descrive inoltre come eseguire utilizzare un controllo di integrità senza riparazione automatica, rimuovere un controllo di integrità visualizzare il criterio di riparazione automatica e controllare lo stato di integrità di ogni VM.
Puoi configurare un controllo di integrità basato sull'applicazione per verificare che su una VM risponde come previsto. Se il controllo di integrità "Configura" rileva che l'applicazione su una VM non risponde, il gruppo di istanze gestite contrassegna la VM come non integro e la ripara. Riparazione di una VM basata su Un controllo di integrità basato sull'applicazione è chiamato riparazione automatica.
Puoi anche disattivare le riparazioni in un gruppo di istanze gestite in modo da usa un controllo di integrità senza attivare la riparazione automatica.
Per saperne di più sulle riparazioni in un gruppo di istanze gestite, consulta Informazioni sulla riparazione delle VM per l'alta disponibilità.
Prima di iniziare
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Crea un controllo di integrità, se non l'hai ancora fatto.
- Configura un criterio di riparazione automatica nel gruppo di istanze gestite per applicare il controllo di integrità.
Crea un controllo di integrità più conservativo per la riparazione automatica rispetto a controllo di integrità del bilanciamento del carico.
Ad esempio, crea un controllo di integrità che cerchi una risposta sulla porta
80
e che possono tollerare alcuni errori prima di contrassegnare le VM comeUNHEALTHY
e ne crea la nuova creazione. In questo esempio, La VM è contrassegnata come integro se il controllo di integrità viene restituito correttamente una volta. La VM è contrassegnata come non integro se il controllo di integrità non viene eseguito correttamente3
volte consecutive.Nella console Google Cloud, vai alla pagina Crea un controllo di integrità.
Assegna un nome al controllo di integrità, ad esempio
example-check
.Seleziona un Ambito. Puoi selezionare A livello di regione o Globale. Per questo esempio, seleziona Globale.
In Protocollo, assicurati che sia selezionato HTTP.
In Porta, inserisci
80
.Nella sezione Criteri di salute, specifica i seguenti valori:
- In Intervallo di controllo, inserisci
5
. - In Timeout, inserisci
5
. - Imposta una soglia di stato integro per determinare il numero di
controlli di integrità andati a buon fine devono essere restituiti prima che
La VM è contrassegnata come integro. Inserisci
1
per questo esempio. - Imposta una soglia di stato non integro per determinare il numero di
devono essere restituiti controlli di integrità non riusciti prima che una VM sia integra
contrassegnato come non integro. Inserisci
3
per questo esempio.
- In Intervallo di controllo, inserisci
Fai clic su Crea per creare il controllo di integrità.
Crea una regola firewall per consentire ai probe del controllo di integrità di connettersi al tuo dell'app.
Sonde del controllo di integrità provengono da indirizzi negli intervalli
130.211.0.0/22
e35.191.0.0/16
, quindi assicurati che le regole del firewall di controllo di integrità connettersi. Per questo esempio, il gruppo di istanze gestite utilizzadefault
e le sue VM sono in ascolto sulla porta80
. Se la porta80
non è è già aperta sulla rete predefinita, crea una regola firewall.Nella console Google Cloud, vai alla pagina Criteri firewall.
Fai clic su Crea regola firewall.
Inserisci un Nome per la regola firewall. Ad esempio:
allow-health-check
.In Rete, seleziona la rete
default
.In Target, seleziona
All instances in the network
.In Filtro di origine, seleziona
IPv4 ranges
.Per Intervalli IPv4 di origine, inserisci
130.211.0.0/22
e35.191.0.0/16
.In Protocolli e porte, seleziona Protocolli e porte specificati porte e procedi nel seguente modo:
- Seleziona TCP.
- Nel campo Ports (Trasferimenti), inserisci
80
.
Fai clic su Crea.
Crea un controllo di integrità più conservativo per la riparazione automatica rispetto a controllo di integrità del bilanciamento del carico.
Ad esempio, crea un controllo di integrità che cerchi una risposta su porta
80
e che può tollerare alcuni errori prima di contrassegnare le VM comeUNHEALTHY
e ne crea la nuova creazione. In questo esempio, La VM viene contrassegnata come integro se viene restituita correttamente una volta. La VM è contrassegnato come non integro se restituisce3
volte consecutive senza successo. Il comando seguente crea un controllo di integrità globale.gcloud compute health-checks create http example-check --port 80 \ --check-interval 30s \ --healthy-threshold 1 \ --timeout 10s \ --unhealthy-threshold 3 \ --global
Crea una regola firewall per consentire ai probe del controllo di integrità di connettersi al tuo dell'app.
Sonde del controllo di integrità provengono da indirizzi negli intervalli
130.211.0.0/22
e35.191.0.0/16
, quindi assicurati che le regole firewall consentano l'integrità seleziona per stabilire la connessione. Per questo esempio, il gruppo di istanze gestite utilizzadefault
e le relative VM sono in ascolto sulla porta80
. Se la porta80
non è è già aperta sulla rete predefinita, crea una regola firewall.gcloud compute firewall-rules create allow-health-check \ --allow tcp:80 \ --source-ranges 130.211.0.0/22,35.191.0.0/16 \ --network default
Crea un controllo di integrità utilizzando la risorsa
google_compute_http_health_check
.Ad esempio, crea un controllo di integrità che cerchi una risposta su porta
80
e che può tollerare alcuni errori prima che contrassegni le VM comeUNHEALTHY
e ne fa sì che vengano ricreati. In questo esempio, una VM viene contrassegnato come integro se viene restituito correttamente una volta. La VM è contrassegnato come non integro se restituisce3
volte consecutive senza successo. La seguente richiesta crea un controllo di integrità globale.Crea un firewall utilizzando la risorsa
google_compute_firewall
.Sonde del controllo di integrità provengono da indirizzi negli intervalli
130.211.0.0/22
e35.191.0.0/16
, quindi assicurati che le regole firewall consentano la connessione del controllo di integrità. Per in questo esempio, il gruppo di istanze gestite utilizzadefault
e le sue VM sono in ascolto sulla porta80
. Se la porta80
non è è già aperta sulla rete predefinita, crea una regola firewall.Crea un controllo di integrità per una riparazione automatica più conservativa rispetto all'integrità del bilanciamento del carico verifica.
Ad esempio, crea un controllo di integrità che cerchi una risposta su porta
80
e che può tollerare alcuni errori prima che contrassegni le VM comeUNHEALTHY
e ne fa sì che vengano ricreati. In questo esempio, una VM viene contrassegnato come integro se viene restituito correttamente una volta. La VM è contrassegnato come non integro se restituisce3
volte consecutive senza successo. La seguente richiesta crea un controllo di integrità globale.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/healthChecks { "name": "example-check", "type": "http", "port": 80, "checkIntervalSec": 30, "healthyThreshold": 1, "timeoutSec": 10, "unhealthyThreshold": 3 }
Crea una regola firewall per consentire ai probe del controllo di integrità di connettersi al tuo dell'app.
Sonde del controllo di integrità provengono da indirizzi negli intervalli
130.211.0.0/22
e35.191.0.0/16
, quindi assicurati che le regole firewall consentano la connessione del controllo di integrità. Per in questo esempio, il gruppo di istanze gestite utilizzadefault
e le sue VM sono in ascolto sulla porta80
. Se la porta80
non è è già aperta sulla rete predefinita, crea una regola firewall.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "allowed": [ { "ports": [ "80" ], "IPProtocol": "tcp" } ] }
Sostituisci
PROJECT_ID
con ID progetto.- Se non hai ancora un controllo di integrità, creane uno.
- Se vuoi impedire l'attivazione errata della riparazione automatica durante la configurazione di un nuovo controllo di integrità, devi prima disattivare le riparazioni nel gruppo di istanze gestite, quindi configurare il criterio di riparazione automatica.
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze gestite. a cui vuoi applicare il controllo di integrità.
Fai clic su Modifica per modificare questo gruppo di istanze gestite.
Nella sezione Ciclo di vita dell'istanza VM, in Riparazione automatica, seleziona un Controllo di integrità globale o regionale.
Modifica o mantieni l'impostazione Ritardo iniziale.
Il ritardo iniziale è il numero di secondi necessari a una nuova VM per inizializzare ed eseguire script di avvio. Durante il periodo di ritardo iniziale di una VM, il gruppo di istanze gestite ignora controlli di integrità non riusciti perché la VM potrebbe essere nell'avvio e il processo di sviluppo. Questo impedisce al gruppo di istanze gestite di ricreare prematuramente una VM. Se il controllo di integrità riceve una risposta sana durante il processo di avvio, indica che il processo di avvio è stato completato e che la VM è pronto. Il timer del ritardo iniziale si avvia quando Il campo
currentAction
diventaVERIFYING
. Il valore iniziale deve essere compreso tra 0 e 3600 secondi. Nella console, il valore predefinito è di 300 secondi.Fai clic su Salva per applicare le modifiche.
MIG_NAME
: il nome del gruppo di istanze gestite in cui vuoi configurare la riparazione automatica.SIZE
: il numero di VM nel gruppo.INSTANCE_TEMPLATE_URL
: l'URL parziale della che vuoi utilizzare per creare le VM nel gruppo. Ad esempio:- Modello di istanza regionale:
projects/example-project/regions/us-central1/instanceTemplates/example-template
. - Modello di istanza globale:
projects/example-project/global/instanceTemplates/example-template
.
- Modello di istanza regionale:
HEALTH_CHECK_URL
: l'URL parziale dell'integrità seleziona se vuoi configurare la riparazione automatica. Se vuoi utilizzare un controllo di integrità a livello di regione, devi fornire l'URL parziale controllo di integrità. Ad esempio:- Controllo di integrità a livello di regione:
projects/example-project/regions/us-central1/healthChecks/example-health-check
. - Controllo di integrità globale:
projects/example-project/global/healthChecks/example-health-check
.
- Controllo di integrità a livello di regione:
INITIAL_DELAY
: il numero di secondi in cui una nuova VM per inizializzare ed eseguire lo script di avvio. Durante il ritardo iniziale di una VM punto, il gruppo di istanze gestite ignora i controlli di integrità non riusciti perché la VM potrebbe è nel processo di avvio. Questo impedisce al gruppo di istanze gestite prematuramente durante la nuova creazione di una VM. Se il controllo di integrità riceve una risposta sana durante il ritardo iniziale, indica che il processo di avvio è completo e quando la VM è pronta. Il timer del ritardo iniziale si avvia quando Il campocurrentAction
diventaVERIFYING
. Il valore del ritardo iniziale deve essere compreso tra0
e3600
secondi. Il valore predefinito è0
.ZONE
: la zona in cui si trova il gruppo di istanze gestite. Per un un gruppo di istanze gestite a livello di regione, usa il flag--region
.- Per un gruppo di istanze gestite a livello di zona, utilizza
Metodo
instanceGroupManager.patch
. - Per un gruppo di istanze gestite a livello di regione, utilizza
Metodo
regionInstanceGroupManager.patch
. - Per un gruppo di istanze gestite a livello di zona, utilizza
Metodo
instanceGroupManager.insert
. - Per un gruppo di istanze gestite a livello di regione, utilizza
Metodo
regionInstanceGroupManager.insert
. PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il nome del gruppo di istanze gestite in cui vuoi configurare la riparazione automatica.SIZE
: il numero di VM nel gruppo.INSTANCE_TEMPLATE_URL
: l'URL parziale della che vuoi utilizzare per creare le VM nel gruppo. Ad esempio:- Modello di istanza regionale:
projects/example-project/regions/us-central1/instanceTemplates/example-template
. - Modello di istanza globale:
projects/example-project/global/instanceTemplates/example-template
.
- Modello di istanza regionale:
HEALTH_CHECK_URL
: l'URL parziale dell'integrità seleziona se vuoi configurare la riparazione automatica. Ad esempio:- Controllo di integrità a livello di regione:
projects/example-project/regions/us-central1/healthChecks/example-health-check
. - Controllo di integrità globale:
projects/example-project/global/healthChecks/example-health-check
.
- Controllo di integrità a livello di regione:
INITIAL_DELAY
: il numero di secondi in cui una nuova VM per inizializzare ed eseguire lo script di avvio. Durante il ritardo iniziale di una VM punto, il gruppo di istanze gestite ignora i controlli di integrità non riusciti perché la VM potrebbe è nel processo di avvio. Questo impedisce al gruppo di istanze gestite prematuramente durante la nuova creazione di una VM. Se il controllo di integrità riceve una risposta sana durante il ritardo iniziale, indica che il processo di avvio è completo e quando la VM è pronta. Il timer del ritardo iniziale si avvia quando Il campocurrentAction
diventaVERIFYING
. Il valore del ritardo iniziale deve essere compreso tra0
e3600
secondi. Il valore predefinito è0
.ZONE
: la zona in cui si trova il gruppo di istanze gestite. Per un un gruppo di istanze gestite a livello di regione, usaregions/REGION
nell'URL.- 10 minuti di ritardo prima che la riparazione automatica inizi a monitorare le VM nel gruppo
- + 5 minuti per il ritardo iniziale configurato
- + 1 minuto per l'intervallo di controllo * soglia stato integro (60 s * 1)
- = 16 minuti prima che la VM venga contrassegnata come integro o venga ricreata
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
- Fai clic sul nome del gruppo di istanze gestite da cui vuoi rimuovere il controllo di integrità.
- Fai clic su Modifica per modificare questo gruppo di istanze gestite.
- Nella sezione Ciclo di vita dell'istanza VM, in Riparazione automatica, seleziona Nessun controllo di integrità.
- Fai clic su Salva per applicare le modifiche.
- Per un gruppo di istanze gestite a livello di zona, utilizza
Metodo
instanceGroupManagers.patch
- Per un gruppo di istanze gestite a livello di regione, utilizza
Metodo
regionInstanceGroupManagers.patch
PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il nome del gruppo di istanze gestite in cui vuoi configurare la riparazione automatica.ZONE
: la zona in cui si trova il gruppo di istanze gestite. Per un un gruppo di istanze gestite a livello di regione, usaregions/REGION
.Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic sul nome del gruppo di istanze gestite di cui vuoi visualizzare la riparazione automatica .
Vai alla scheda Dettagli.
Nella sezione Ciclo di vita dell'istanza VM, il campo Riparazione automatica mostra il controllo di integrità e il ritardo iniziale configurato e un criterio di riparazione automatica.
- Per un gruppo di istanze gestite a livello di zona, utilizza il metodo
instanceGroupManagers.get
- Per un gruppo di istanze gestite a livello di regione, utilizza il metodo
regionInstanceGroupManagers.get
PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il nome del gruppo di istanze gestite in cui vuoi configurare la riparazione automatica.ZONE
: la zona in cui si trova il gruppo di istanze gestite. Per un un gruppo di istanze gestite a livello di regione, usaregions/REGION
.- Verificare l'integrità delle VM
- Controllare le azioni attuali sulle VM
- Verifica se il gruppo di istanze gestite è stabile
- Identifica le VM in stato non integro che non devono essere riparate. Una VM potrebbe non
riparare immediatamente anche se è stato diagnosticato come non integro
le seguenti situazioni:
- La VM è ancora in fase di avvio e il ritardo iniziale non è trascorso.
- Una quota significativa di istanze non integre è in fase di riparazione. Il gruppo di istanze gestite ritarda ulteriormente la riparazione automatica per garantire che il gruppo continui che eseguono un sottoinsieme di istanze.
- Rileva gli errori di configurazione del controllo di integrità. Ad esempio, puoi rilevare
regole firewall configurate in modo errato o un controllo di integrità dell'applicazione non valido
se l'istanza segnala uno stato di integrità pari a
TIMEOUT
. - Determina il valore di ritardo iniziale da configurare misurando la quantità di tempo
tra il momento in cui la VM passa a uno stato
RUNNING
e quando la VM passa a uno stato di integritàHEALTHY
. Puoi misurare questo gap con un sondaggio sulist-instances
oppure osservando il tempo tra l'operazioneinstances.insert
e il primo segnale di integrità ricevuto. Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze gestite. che vuoi esaminare. Si apre una pagina con il gruppo di istanze e un elenco di VM incluse nel gruppo.
Se una VM non è integro, puoi vederne lo stato in Colonna Stato del controllo di integrità.
HEALTHY
: la VM è raggiungibile, una connessione all'integrità dell'applicazione dell'endpoint di controllo e la risposta è conforme alle ai requisiti definiti dal controllo di integrità.DRAINING
: la VM è in fase di svuotamento. Connessioni esistenti al La VM ha tempo per essere completata, ma le nuove connessioni vengono rifiutate.UNHEALTHY
: la VM è raggiungibile, ma non è conforme alle ai requisiti definiti dal controllo di integrità.TIMEOUT
: la VM non è raggiungibile, è presente una connessione all'applicazione impossibile stabilire un endpoint del controllo di integrità oppure il server su una VM non risponde entro il timeout specificato. Ad esempio, questo può essere dovuto Da regole firewall configurate in modo errato o un'applicazione server sovraccarica su una VM.UNKNOWN
: il sistema di controllo di integrità non è a conoscenza della VM o della sua lo stato di salute non è noto al momento. Il monitoraggio può richiedere 10 minuti su nuove VM in un gruppo di istanze gestite.- Se una VM ha uno stato di integrità
UNHEALTHY
oTIMEOUT
ha superato il periodo di inizializzazione, Il gruppo di istanze gestite cerca immediatamente di ripararlo. - Se una VM ha uno stato di integrità
UNKNOWN
, il gruppo di istanze gestite non ripararlo immediatamente. Questo serve a evitare la riparazione non necessaria di una VM il segnale del controllo di integrità non è al momento disponibile. - Una VM rimane in stato non integro dopo più riparazioni consecutive.
- Nel gruppo è presente una quota complessiva significativa di VM in stato non integro.
unhealthy-threshold
. Deve essere superiore a1
. Possibilmente, imposta questo valore su3
o più. Questa opzione protegge da malfunzionamenti rari come un pacchetto di rete. o una perdita di dati.healthy-threshold
. Per la maggior parte delle app è sufficiente un valore2
.timeout
. Imposta questo valore di tempo su un importo generoso (cinque volte o più rispetto al tempo di risposta previsto). Questo meccanismo protegge da ritardi imprevisti ad esempio istanze occupate o una connessione di rete lenta.check-interval
. Questo valore deve essere compreso tra 1 secondo e 2 volte il valore timeout (non troppo lungo né troppo breve). Quando un valore è troppo lungo, viene restituito l'istanza con errori non viene acquisita abbastanza presto. Quando un valore è troppo breve, le istanze e la rete possono diventare misurabili, dato il un elevato numero di probe del controllo di integrità inviati al secondo.- Prova il tutorial, Utilizzare la riparazione automatica per le app ad alta disponibilità.
- Monitora le modifiche allo stato di integrità delle VM.
- Applica gli aggiornamenti di configurazione durante le riparazioni.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Prezzi
Quando configuri un controllo di integrità basato su applicazione, ogni volta che l'integrità di una VM modifiche di stato, per impostazione predefinita Compute Engine scrive una voce di log Cloud Logging. Cloud Logging offre allocazione gratuita al mese dopodiché il costo del logging dipende dal volume di dati. Per evitare costi, puoi disattiva dei log delle modifiche dello stato di integrità.
Configura un controllo di integrità basato sull'applicazione e la riparazione automatica
Per configurare un controllo di integrità basato su applicazione e la riparazione automatica in un gruppo di istanze gestite, devi segui questi passaggi:
Crea un controllo di integrità
Puoi applicare un singolo controllo di integrità a un massimo di 50 gruppi di istanze gestite. Se disponi di più di 50 gruppi, creano più controlli di integrità.
L'esempio seguente mostra come creare un controllo di integrità per la riparazione automatica. Tu puoi creare una regione regionale o un controllo di integrità globale e la riparazione automatica nei gruppi di istanze gestite. In questo esempio, crei un controllo di integrità globale cerca un server web risposta sulla porta
80
. Abilitare i probe del controllo di integrità per raggiungere il web devi configurare una regola firewall.Console
gcloud
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.
REST
Configurare un criterio di riparazione automatica in un gruppo di istanze gestite
In un gruppo di istanze gestite, puoi configurare un solo criterio di riparazione automatica per applicare un controllo di integrità.
Puoi utilizzare una definizione regionale o un controllo di integrità globale e la riparazione automatica nei gruppi di istanze gestite. I controlli di integrità a livello di regione riducono le dipendenze tra regioni aiutano a ottenere la residenza dei dati. I controlli di integrità globali sono comodi se vuoi per utilizzare lo stesso controllo di integrità per i gruppi di istanze gestite in più regioni.
Prima di configurare un criterio di riparazione automatica:
Console
gcloud
Per configurare il criterio di riparazione automatica in un gruppo di istanze gestite esistente, utilizza il Comando
update
.Ad esempio, utilizza il comando seguente per configurare il criterio di riparazione automatica in una gruppo di istanze gestite di zona esistente:
gcloud compute instance-groups managed update MIG_NAME \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --zone ZONE
Per configurare il criterio di riparazione automatica durante la creazione di un gruppo di istanze gestite, utilizza il Comando
create
.Ad esempio, usa il comando seguente per configurare il criterio di riparazione automatica quando Creazione di un gruppo di istanze gestite a livello di zona:
gcloud compute instance-groups managed create MIG_NAME \ --size SIZE \ --template INSTANCE_TEMPLATE_URL \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --zone ZONE
Sostituisci quanto segue:
Terraform
Per configurare un criterio di riparazione automatica in un gruppo di istanze gestite, utilizza
auto_healing_policies
bloccare.L'esempio seguente configura il criterio di riparazione automatica in un gruppo di istanze gestite a livello di zona. Per maggiori informazioni sulla risorsa utilizzata nell'esempio, consulta
google_compute_instance_group_manager
. Per un un gruppo di istanze gestite a livello di regione, usa la risorsagoogle_compute_region_instance_group_manager
.Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.
REST
Per configurare il criterio di riparazione automatica in un gruppo di istanze gestite esistente, utilizza il metodo
patch
come che segue:Ad esempio, effettua la seguente chiamata per configurare la riparazione automatica in una gruppo di istanze gestite a livello di zona:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ] }
Per configurare il criterio di riparazione automatica durante la creazione di un gruppo di istanze gestite, utilizza
insert
come segue:Ad esempio, effettua la chiamata seguente per configurare il criterio di riparazione automatica quando Creazione di un gruppo di istanze gestite a livello di zona:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "MIG_NAME", "targetSize": SIZE, "instanceTemplate": "INSTANCE_TEMPLATE_URL" "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ], }
Sostituisci quanto segue:
Al termine della configurazione della riparazione automatica, 10 minuti prima che la riparazione automatica inizi a monitorare le VM nel gruppo. Dopo l'inizio del monitoraggio, Compute Engine inizia a contrassegnare le VM come integro (o ricrearle) in base alla configurazione di riparazione automatica. Per Ad esempio, se configuri un ritardo iniziale di 5 minuti, un intervallo del controllo di integrità di 1 minuto e una soglia di stato integro di 1 controllo, la sequenza temporale è simile alla seguenti:
Se avevi disattivato le riparazioni nel gruppo di istanze gestite prima di configurare la riparazione automatica , puoi monitorare gli stati di integrità della VM per confermare che il controllo di integrità funzioni come previsto ripristinare il gruppo di istanze gestite sulla riparazione delle VM.
Usa un controllo di integrità senza riparazione automatica
Puoi utilizzare il controllo di integrità configurato in un gruppo di istanze gestite senza riparazione automatica la disattivazione delle riparazioni nel gruppo di istanze gestite. Ciò è utile negli scenari in cui vuoi usare il controllo di integrità solo per monitorare l'integrità dell'applicazione o quando vuoi implementare la tua logica di riparazione basata sul controllo di integrità.
Per reimpostare il gruppo di istanze gestite sulla riparazione delle VM in stato non integro, consulta Imposta un gruppo di istanze gestite per riparare le VM non riuscite e non integre.
Rimuovere un controllo di integrità
Puoi rimuovere un controllo di integrità configurato in un criterio di riparazione automatica come segue:
Console
gcloud
Per rimuovere la configurazione del controllo di integrità in un criterio di riparazione automatica, nella sezione Comando
update
usa il flag--clear-autohealing
come segue:gcloud compute instance-groups managed update MIG_NAME \ --clear-autohealing
Sostituisci
MIG_NAME
con il nome di un gruppo di istanze gestite.REST
Per rimuovere la configurazione del controllo di integrità in un criterio di riparazione automatica, imposta il valore del criterio di riparazione automatica su un valore vuoto.
Ad esempio, per rimuovere il controllo di integrità in un gruppo di istanze gestite a livello di zona, esegui quanto segue richiesta:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "autoHealingPolicies": [ {} ] }
Sostituisci quanto segue:
Visualizza il criterio di riparazione automatica in un gruppo di istanze gestite
Puoi visualizzare il criterio di riparazione automatica di un gruppo di istanze gestite come segue:
Console
gcloud
Per visualizzare il criterio di riparazione automatica in un gruppo di istanze gestite, utilizza il seguente comando:
gcloud compute instance-groups managed describe MIG_NAME \ --format="(autoHealingPolicies)"
Sostituisci
MIG_NAME
con il nome di un gruppo di istanze gestite.Di seguito è riportato un output di esempio:
autoHealingPolicies: healthCheck: https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check initialDelaySec: 300
REST
Per visualizzare il criterio di riparazione automatica in un gruppo di istanze gestite, utilizza i metodi REST come che segue:
Ad esempio, invia la seguente richiesta per visualizzare il criterio di riparazione automatica in un gruppo di istanze gestite a livello di zona:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
Nel corpo della risposta, controlla l'oggetto
autoHealingPolicies[]
.Di seguito è riportato un esempio di risposta:
{ ... "autoHealingPolicies": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check", "initialDelaySec": 300 } ], ... }
Sostituisci quanto segue:
Controllare lo stato
Dopo aver configurato un controllo di integrità basato sull'applicazione in un gruppo di istanze gestite, puoi verificare che una VM sia in esecuzione e che la relativa applicazione risponda utilizzando nei seguenti modi:
Controlla se le VM sono integre
Se hai configurato un controllo di integrità basato sull'applicazione nel gruppo di istanze gestite, puoi per controllare lo stato di integrità di ogni istanza gestita.
Controlla gli stati di integrità dell'istanza gestita per:
Utilizza la console,
gcloud
: a strumento a riga di comando, REST per visualizzare gli stati di integrità.Console
gcloud
Utilizza la
list-instances
sottocomando.gcloud compute instance-groups managed list-instances instance-group NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR igm-with-hc-fvz6 europe-west1 RUNNING HEALTHY NONE my-template igm-with-hc-gtz3 europe-west1 RUNNING HEALTHY NONE my-template
La colonna
HEALTH_STATE
mostra lo stato di integrità di ogni VM.REST
Per un gruppo di istanze gestite a livello di regione, crea una richiesta
POST
all'istanzalistManagedInstances
:POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group/listManagedInstances
Per un gruppo di istanze gestite a livello di zona, utilizza un gruppo di istanze gestite a livello di zona
listManagedInstances
:POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group/listManagedInstances
La richiesta restituisce una risposta simile alla seguente, che include un campo
instanceHealth
per ogni istanza gestita.{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-5485", "instanceStatus": "RUNNING", "currentAction": "NONE", "lastAttempt": { }, "id": "6159431761228150698", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template", "version": { "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template" }, "instanceHealth": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check", "detailedHealthState": "HEALTHY" } ] }, { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-sfdp", "instanceStatus": "STOPPING", "currentAction": "DELETING", "lastAttempt": { }, "id": "6622324799312181783", "instanceHealth": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check", "detailedHealthState": "TIMEOUT" } ] } ] }
Stati di integrità
Sono disponibili i seguenti stati di integrità delle VM:
Le nuove VM restituiscono uno stato
UNHEALTHY
finché non vengono verificate dal di controllo dell'integrità.La riparazione di una VM dipende dal suo stato di integrità:
I tentativi di riparazione automatica possono subire ritardi se:
Vogliamo conoscere i tuoi casi d'uso, le tue sfide o il tuo feedback sulle VM valori relativi allo stato di integrità. Puoi condividere il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.
Controlla le azioni attuali sulle VM
Durante il processo di creazione di un'istanza VM, un gruppo di istanze gestite imposta il campo
currentAction
di sola lettura di quell'istanza suCREATING
. Se la riparazione automatica sia collegato al gruppo, dopo che la VM è stata creata e in esecuzione, imposta l'azione corrente dell'istanza suVERIFYING
e il controllo di integrità inizia a sperimentare l'applicazione della VM. Se l'applicazione supera questo modello di controllo di integrità entro il tempo necessario per l'avvio dell'applicazione, la VM viene verificata e il gruppo di istanze gestite modifica il campocurrentAction
della VM inNONE
.Per controllare le azioni attuali sulle VM, consulta Visualizza le azioni attuali sulle VM.
Controlla se il gruppo di istanze gestite è stabile
A livello di gruppo, Compute Engine compila un campo di sola lettura denominato
status
che contiene un flagisStable
.Se tutte le VM nel gruppo sono in esecuzione e in stato integro (ovvero,
currentAction
per ogni istanza gestita è impostato suNONE
), il gruppo di istanze gestite impostastatus.isStable
sutrue
. Ricorda che la stabilità di un gruppo di istanze gestite dipende sulle configurazioni dei gruppi oltre ai criteri di riparazione automatica; ad esempio, se viene scalato automaticamente e, se viene fatto lo scale in o lo scale out, il gruppo di istanze gestite imposta il campostatus.isStable
sufalse
a causa dell'operazione del gestore della scalabilità automatica.Per verificare i valori del campo
status.isStable
del gruppo di istanze gestite, consulta Controlla se un gruppo di istanze gestite è stabile.Visualizza le operazioni di riparazione automatica storiche
Puoi utilizzare gcloud CLI o REST per visualizzare di riparazione automatica.
gcloud
Utilizza la
gcloud compute operations list
con un filtro per vedere solo gli eventi di riparazione automatica presenti nel tuo progetto.gcloud compute operations list --filter='operationType~compute.instances.repair.*'
Per ulteriori informazioni su una specifica operazione di riparazione, utilizza il
describe
. Ad esempio:gcloud compute operations describe repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5 --zone us-east1-b
REST
Per i gruppi di istanze gestite regionali, invia una richiesta
GET
alregionOperations
e includi un filtro per definire l'ambito dell'elenco di outputcompute.instances.repair.*
eventi.GET https://compute.googleapis.com/compute/v1/projects/project-id/region/region/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Per i gruppi di istanze gestite a livello di zona, utilizza
zoneOperations
risorsa.GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Per ulteriori informazioni su un'operazione di riparazione specifica, invia un
GET
per l'operazione specifica. Ad esempio:GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations/repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5
Quali caratteristiche deve avere un controllo di integrità per la riparazione automatica efficace
I controlli di integrità utilizzati per la riparazione automatica devono essere conservati in modo da non eliminare e ricreare preventivamente le istanze. Quando un controllo di integrità di riparazione automatica è troppo aggressivo, la riparazione automatica potrebbe scambiare le istanze occupate per e riavviarle inutilmente, riducendo la disponibilità.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-10-14 UTC.
-