Per verificare se per il tuo gruppo di istanze gestite a livello di regione è stato eseguito un overprovisioning sufficiente e può sopravvivere a un'interruzione della zona, puoi usare l'esempio seguente per simulare un errore a livello di zona.
Prima di iniziare
- Se vuoi utilizzare gli esempi di riga di comando di questa guida, installa Google Cloud CLI.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
Esegui il deployment di questo script ed eseguilo continuamente in ogni VM del gruppo. Puoi farlo aggiungendo lo script al modello di istanza o includendolo in un'immagine personalizzata e utilizzando l'immagine nel modello di istanza.
Simula un errore di zona impostando questi due campi di metadati di progetto:
failed_zone
: imposta la zona in cui vuoi simulare l'interruzione (limita l'errore a una sola zona).failed_instance_names
: scegli in base al nome le VM da mettere offline (per limitare l'errore solo ai nomi delle VM contenenti questa stringa).
Puoi impostare questi metadati utilizzando gcloud CLI. Ad esempio, il seguente comando imposta l'interruzione della zona sulla zona
europe-west1-b
e interessa le VM che hanno nomi che iniziano conbase-instance-name
:gcloud compute project-info add-metadata --metadata failed_zone='europe-west1-b',failed_instance_names='base-instance-name-'
Dopo aver simulato l'interruzione, ripristina l'errore rimuovendo le chiavi dei metadati:
gcloud compute project-info remove-metadata --keys failed_zone,failed_instance_names
- Interrompi completamente l'applicazione per vedere come risponde il gruppo di istanze gestite.
- Fai in modo che le VM restituiscano lo stato "non integro" sui controlli di integrità del bilanciamento del carico.
- Modifica iptables per bloccare parte del traffico da e verso la VM.
- Arresta le VM. Per impostazione predefinita, verrà ricreato dal gruppo di istanze gestite a livello di regione poco dopo, ma la nuova versione si chiuderà immediatamente non appena lo script viene eseguito e a condizione che siano impostati i valori dei metadati. Verrà generato un loop di arresto anomalo.
- Scopri come creare applicazioni web scalabili e resilienti.
- Scopri di più sul ripristino di emergenza sulla piattaforma Google Cloud.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Utilizza uno script per simulare un'interruzione di una zona
Questo script arresta e avvia Apache come scenario predefinito. Se questo non è applicabile alla tua applicazione, sostituisci i comandi che arrestano e avviano Apache con il tuo scenario di errore e ripristino.
Di seguito sono riportate alcune idee per scenari di errore che puoi eseguire utilizzando questo script:
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-07-12 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -