Dieses Dokument bietet einen Überblick über die Resilienz virtueller Maschinen (VMs) und optionale Prüfungen, die Anwendungsbetreiber aktivieren können, um detailliertere Informationen aus einer VM in Google Distributed Cloud (GDC) Air-Gap zu erhalten.
Dieses Dokument richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die VMs betreiben. Weitere Informationen finden Sie unter Zielgruppen für die GDC-Dokumentation für Air-Gap-Umgebungen.
VMs in GDC bieten Hochverfügbarkeit, um die Kontinuität des Dienstes im Falle von Fehlern in der zugrunde liegenden Infrastruktur oder im Gastbetriebssystem zu verbessern. Sie können das System auch so konfigurieren, dass optionale Systemzustandssignale ausgegeben werden, die einen tieferen Einblick in den VM-Status bieten.
VM-Verfügbarkeitsprüfungen
Das System bietet die folgenden Prüfungen der VM-Verfügbarkeit:
| Name prüfen | Beschreibung | Unterstützung bei Maßnahmen zur Risikominderung | Signalverfügbarkeit |
|---|---|---|---|
| Systemdiagnose für Gäste | Prüft den Status des Gastbetriebssystems. Eine Voraussetzung für andere Prüfungen im Gast. | Ja | In-Guest Check |
| Speicherprüfung | Prüft den Zustand des zugrunde liegenden Speichers der VM. | Ja | In-Guest Check |
| Prüfung des ausgehenden Traffics | Überprüft die Verbindung zu einem bekannten internen Endpunkt. | Nein | Im Gastbereich und draußen |
| Ingress-Prüfung | Prüft die VM-Erreichbarkeit über den konfigurierten Ingress (VirtualMachineExternalAccess). | Nein | In-Guest Check |
Durch die Maßnahmen zur Risikominderung kann die VM neu gestartet und bei häufigen Fehlern auf einem anderen Knoten geplant werden.
Berechtigungen und Zugriff anfordern
Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Führen Sie die Schritte aus, um zu prüfen, ob Sie die Rolle „Project VirtualMachine Admin“ (project-vm-admin) im Namespace des Projekts haben, in dem sich die VM befindet.
Prüfungen im Gastbetriebssystem aktivieren
Standardmäßig ist die Gastprüfung deaktiviert, wenn guestHealthCheck nicht vorhanden ist.
Wenn Sie die In-Guest-Prüfung für eine VM aktivieren oder deaktivieren möchten, müssen Sie GuestEnvironment in der Spezifikation der VM aktualisieren. Mit dieser Einstellung werden Messwerte aus der VM erfasst, sofern der Gast-Agent installiert ist. Wenn guestHealthCheck nicht vorhanden ist, sind die Prüfungen im Gast standardmäßig deaktiviert.
- Öffnen Sie die Konfigurationsdatei der VM.
- Gehen Sie zum Abschnitt
spec:. - Fügen Sie die Felder
guestEnvironment:undguestHealthCheck:hinzu oder ändern Sie sie, um die Prüfung zu aktivieren. - Setzen Sie das Feld
enableauf „true“.
Hier ist ein Beispiel für die Konfiguration in einer YAML-Datei:
spec:
compute:
virtualMachineType: n2-standard-2-gdc
guestEnvironment:
guestHealthCheck:
enable: true
Prüfungen bestätigen
Nachdem Sie die VM konfiguriert haben, können Sie den Status der Verfügbarkeitsprüfungen prüfen, indem Sie die Condition der VM in ihrer Status ansehen.
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n NAMESPACE_NAME \
get gvm -o yaml
In der Ausgabe wird der Status der verschiedenen Prüfungen angezeigt. Wenn beispielsweise guestHealthCheck aktiviert ist, werden die Statusbedingungen für gvm mit dem Signal VMGuestHealth gefüllt.
Hochverfügbarkeit für VMs deaktivieren
Standardmäßig ist die VM-Hochverfügbarkeit aktiviert, wenn die Annotation nicht vorhanden ist. Sie können die Hochverfügbarkeit für eine bestimmte VM explizit deaktivieren, indem Sie eine Annotation hinzufügen. Fügen Sie die Annotation hinzu, um die VM-HA zu deaktivieren:
- Öffnen Sie die Konfigurationsdatei der VM.
- Fügen Sie den Metadaten der VM die Annotation
highavailability.virtualmachine.gdc.goog/enable: falsehinzu, um die Hochverfügbarkeit zu deaktivieren.
Hier sehen Sie ein Beispiel für die Annotation in einer YAML-Datei:
metadata:
annotations:
highavailability.virtualmachine.gdc.goog/enable: false
Minimierung von Knotenausfällen
Durch automatisierte Maßnahmen zur Risikominderung werden VM-Fehler behoben und die Hochverfügbarkeit aufrechterhalten. Wenn die zugrunde liegende Infrastruktur eine laufende VM nicht mehr unterstützen kann, versucht das System, den fehlerhaften Knoten zu isolieren und die VM auf einem fehlerfreien Knoten neu zu planen. Die folgenden Szenarien können diese Maßnahmen auf Knotenebene auslösen:
Knotenpartitionierung vom API-Server: Der Bare-Metal-Knoten, auf dem die VM gehostet wird, ist aufgrund einer Bedingung wie der folgenden vom Management API-Server partitioniert:
- Verlust der Netzwerkverbindung zwischen dem API-Server und dem Knoten.
- Der
kubelet-Agent auf dem Knoten ist ausgefallen. - Auf dem Knoten kommt es zu einem Stromausfall.
Partition der Nutzercluster-VM: Eine Worker-VM eines Nutzerclusters ist vom Management API-Server des Clusters partitioniert.