Auf dieser Seite wird beschrieben, was während eines Tests mit dem Fehlertyp „Fail Compute“ passiert und welche Maßnahmen zu ergreifen sind, wenn der Fault-Injection-Test den Test nicht beenden kann.
Wie funktioniert der Fehler „Fail Compute“?
Beim Fehler „Fail Compute“ werden Ressourcentags verwendet, um VMs zu kennzeichnen, und eine Firewallrichtlinie mit Regeln, die auf diese Tags ausgerichtet sind, um den gesamten ein- und ausgehenden Traffic zu blockieren. Bei dieser Einrichtung werden die Zielressourcen so behandelt, als ob sie einen Ausfall hätten. Gleichzeitig wird dafür gesorgt, dass sie nicht beschädigt werden und schnell wiederhergestellt werden können.
Die Ursache für diesen Fehler kann Folgendes sein:
- VM-Instanzen
- VMs basierend auf einem angegebenen Ressourcentag
- VMs in einer angegebenen zonalen oder regionalen verwalteten Instanzgruppe (Managed Instance Group, MIG)
- VMs, die nicht zu einer verwalteten Instanzgruppe gehören, in einer Zone und VMs in zonalen verwalteten Instanzgruppen.
- VMs, die nicht zu einer verwalteten Instanzgruppe gehören, in einer Region und VMs in allen verwalteten Instanzgruppen.
Was passiert während der Testausführung?
Im Laufe des Tests durchlaufen die beteiligten Ressourcen die folgenden Status.
Ressource |
|
|
|
VMs |
Keine |
Ressourcen-Tag binden |
Ressourcen-Tag entbinden |
MIGs / RMIGs |
Keine |
Autohealing und Autoscaling deaktivieren (falls sie aktiv sind) |
Einstellungen für Autohealing und Autoscaling wiederherstellen |
Tag |
Eindeutige TagValue-Ressource für Test erstellen |
Keine |
TagValue löschen |
Firewallrichtlinie |
FirewallPolicy-Ressource auf SYSTEM-Ebene erstellen |
Mit DENY-Regeln füllen und Richtlinie an relevante VPCs binden |
Bindung an VPCs aufheben und FirewallPolicy löschen |
Manuelle Notfallwiederherstellung
Im Falle eines schwerwiegenden Backend-Fehlers, bei dem durch Fault Injection Testing ein Test nicht automatisch beendet werden kann, können Sie die Verbindung zu den VM-Ressourcen manuell wiederherstellen, indem Sie die Ressourcentags entfernen, die an die betroffenen VMs gebunden sind. Die System-Firewallrichtlinie, die auf diese Tags ausgerichtet ist, wird nicht mehr angewendet. Die VMs werden also effektiv vom Isolationsfehler getrennt.
Erforderliche Berechtigungen
Sie benötigen die folgenden IAM-Berechtigungen:
- Erforderlich zum Aufrufen von VM-Instanzen:
compute.instances.getcompute.instances.list
- Erforderlich zum Ansehen und Entfernen der Tag-Bindungen:
resourcemanager.tagValueBindings.listresourcemanager.tagValueBindings.delete
Manuelle Wiederherstellung über die Google Cloud Console-Benutzeroberfläche
So führen Sie eine Wiederherstellung über die Google Cloud Console durch:
- Rufen Sie in der Google Cloud -Console die Seite VM-Instanzen auf.
- Wählen Sie die spezifischen VM-Instanzen aus, die von dem Isolationsfehler betroffen sind.
- Rufen Sie auf der Seite mit den Instanzdetails den Abschnitt zum Verwalten von Tags auf.
- Ermitteln Sie die experimentbezogene Tag-Bindung, die mit dem Compute-Fehler „Fault Injection Testing Fail“ verknüpft ist.
- Entfernen Sie die Tag-Bindung von der VM.
Sobald das Tag entfernt wurde, ist die zugehörige Firewallrichtlinie nicht mehr auf die VM ausgerichtet und die Verbindung wird wiederhergestellt.
Manuelle Wiederherstellung mit der gcloud CLI
Sie können die Test-Tag-Bindung manuell mit der Google Cloud CLI aus einer VM entfernen. Ersetzen Sie in den folgenden Befehlen TAG_VALUE_NAME,
PROJECT_NUMBER, ZONE und VM_NAME durch die spezifischen Werte für Ihre Umgebung.
Rufen Sie zuerst den experimentbezogenen Namen des Tag-Werts ab, indem Sie die aktuellen Tag-Bindungen für die VM auflisten:
gcloud resource-manager tag bindings list --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
Verwenden Sie die Ausgabe des vorherigen Befehls, um die TAG_VALUE_NAME zu ermitteln, die für den Löschvorgang erforderlich ist:
gcloud resource-manager tag bindings delete --tag-value=TAG_VALUE_NAME --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
Sobald das Tag entfernt wurde, ist die zugehörige Firewallrichtlinie nicht mehr auf die VM ausgerichtet und die Verbindung wird wiederhergestellt.