Questo documento fornisce una panoramica della resilienza delle macchine virtuali (VM) e dei controlli facoltativi che gli operatori delle applicazioni possono attivare per ottenere informazioni più approfondite dall'interno di una VM in Google Distributed Cloud (GDC) air-gapped.
Questo documento è destinato agli sviluppatori del gruppo di operatori di applicazioni che gestiscono le VM. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC air-gap.
Le VM in GDC forniscono l'alta disponibilità per migliorare la continuità del servizio in caso di errori dell'infrastruttura sottostante o degli ospiti. Puoi anche configurare il sistema per emettere indicatori di integrità facoltativi che offrono informazioni più approfondite sullo stato della VM.
Controlli di disponibilità delle VM
Il sistema fornisce i seguenti controlli di disponibilità delle VM:
| Nome del controllo | Descrizione | Supporto per l'azione di mitigazione | Disponibilità dell'indicatore |
|---|---|---|---|
| Controllo di integrità dell'ospite | Verifica l'integrità del sistema operativo guest. Un prerequisito per altri controlli in-guest. | Sì | Controllo in-guest |
| Controllo dello spazio di archiviazione | Verifica l'integrità dello spazio di archiviazione sottostante della VM. | Sì | Controllo in-guest |
| Controllo dell'uscita | Verifica la connettività a un endpoint interno noto. | No | Controllo in loco e all'esterno |
| Controllo in entrata | Verifica l'accessibilità della VM utilizzando l'ingresso configurato (VirtualMachineExternalAccess). | No | Controllo in-guest |
Le azioni di mitigazione possono riavviare la VM e ripianificarla su un altro nodo in caso di errori frequenti.
Richiedere autorizzazioni e accesso
Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore
macchina virtuale progetto. Segui i passaggi per
verificare
di disporre del ruolo Amministratore macchina virtuale progetto (project-vm-admin) nello spazio dei nomi
del progetto in cui si trova la VM.
Attivare i controlli in-guest
Per impostazione predefinita, il controllo in-guest è disattivato se guestHealthCheck non è
presente.
Per attivare o disattivare il controllo in-guest per una VM, devi aggiornare
GuestEnvironment nella specifica della VM. Questa impostazione raccoglie le metriche
dall'interno della VM, a condizione che l'agente guest sia installato. Se
guestHealthCheck non è presente, i controlli in-guest sono disattivati per impostazione predefinita.
- Apri il file di configurazione della VM.
- Vai alla sezione
spec:. - Aggiungi o modifica i campi
guestEnvironment:eguestHealthCheck:per attivare il controllo. - Imposta il campo
enablesu true.
Ecco un esempio della configurazione in un file YAML:
spec:
compute:
virtualMachineType: n2-standard-2-gdc
guestEnvironment:
guestHealthCheck:
enable: true
Verifica i controlli
Dopo aver configurato la VM, puoi verificare lo stato dei controlli di disponibilità
ispezionando Condition della macchina virtuale in Status.
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n NAMESPACE_NAME \
get gvm -o yaml
L'output mostra lo stato dei vari controlli. Ad esempio, se
guestHealthCheck è attivato, le condizioni di stato di gvm vengono compilate con l'indicatore
VMGuestHealth.
Disattiva l'alta disponibilità della VM
Per impostazione predefinita, l'alta disponibilità delle VM è abilitata se l'annotazione non è presente. Puoi disattivare esplicitamente l'alta affidabilità per una VM specifica aggiungendo un'annotazione. Aggiungi l'annotazione per disabilitare l'alta affidabilità della VM:
- Apri il file di configurazione della VM.
- Aggiungi l'annotazione
highavailability.virtualmachine.gdc.goog/enable: falseai metadati della VM per disattivare l'alta disponibilità.
Ecco un esempio dell'annotazione in un file YAML:
metadata:
annotations:
highavailability.virtualmachine.gdc.goog/enable: false
Mitigazione degli errori dei nodi
Le azioni di mitigazione automatizzate risolvono gli errori delle VM e mantengono l'alta disponibilità. Quando l'infrastruttura sottostante non è più in grado di supportare una VM in esecuzione, il sistema tenta di isolare il nodo non integro e riprogramma la VM su un nodo integro. I seguenti scenari possono attivare questa mitigazione a livello di nodo:
Partizione del nodo dal server API: il nodo bare metal che ospita la VM è partizionato dal server API Management a causa di una condizione come la seguente:
- Perdita della connettività di rete tra il server API e il nodo.
- L'agente
kubeletsul nodo non è attivo. - Il nodo rileva un'interruzione di corrente.
Partizione VM del cluster utente: una VM worker del cluster utente è partizionata dal server API Management del cluster.