Isolation für Cloud Service Mesh

Auf dieser Seite erfahren Sie, wie Sie Ihr Service Mesh mit einer besseren Anfrageisolation für Ihren Backend-Dienst konfigurieren, indem Sie eine Isolationskonfiguration erstellen.

Diese Funktion bietet zusätzliche Isolationsunterstützung für die Back-Ends Ihrer Dienste, um regionsübergreifenden Überlauf zu verhindern.

Standardmäßig verwendet Cloud Service Mesh den Algorithmus Wasserfall nach Region, um zu entscheiden, wohin der Nutzertraffic weitergeleitet werden soll. Mit diesem Algorithmus leitet Cloud Service Mesh den Traffic an die nächstgelegene Region weiter, bis die Backends ihre konfigurierte Kapazitätsgrenze erreicht haben. Danach wird der Traffic in eine weiter entfernte Region umgeleitet.

Mit dieser Funktion wird der Traffic basierend auf Ihrer Frontend-Region und der Konfiguration der Isolation auf die nächstgelegene oder lokale Region beschränkt und nicht überlaufen, wenn die nächstgelegene Region keine Kapazität mehr hat. So können Sie potenzielle kaskadierende Fehler verhindern und potenzielle Ausfälle in derselben Region begrenzen. Ansonsten verwalten Sie Ihre Dienstkonfiguration weiterhin auf globaler Ebene.

Isolationsdiagramm

Ob Sie diese Funktion verwenden sollten, hängt von Ihren tatsächlichen Anwendungsfällen ab. Bevor Sie sie verwenden, sollten Sie die folgenden Überlegungen sorgfältig prüfen:

  • Wenn Ihre Backends in einer Region überlastet sind, sendet Cloud Service Mesh möglicherweise weiterhin zusätzlichen Traffic an sie, auch wenn Backends in anderen Regionen den Traffic verarbeiten können. Das bedeutet, dass jede einzelne Region aufgrund von zusätzlichem Traffic eher überlastet wird und Sie entsprechend planen müssen.
  • Der Traffic wird weiterhin über eine globale Steuerungsebene weitergeleitet. Es besteht also immer noch die Möglichkeit global koordinierter Ausfälle in mehreren Regionen.
  • Diese Funktion wird mit der serviceLbPolicy-Ressource konfiguriert. Alle Einschränkungen gelten weiterhin.
  • Im Isolationsmodus STRICT schlagen Anfragen fehl, wenn es keine bereitstellenden Backends in derselben Region gibt.

Nach der Anwendung dieser Funktion gibt es zwei Szenarien:

Nächste Isolation

Bei der nächstgelegenen regionalen Isolation wird ein Frontend mit am selben Ort befindlichen Backends nur auf diese Region isoliert. Wenn am lokalen Standort kein Backend verfügbar ist, wird eine Verbindung zur Backend-Region hergestellt, während die Netzwerklatenz optimiert wird.

Diagramm zur nächstgelegenen Isolierung

Strikte Isolation

Bei der strikten regionalen Isolation können Frontend-Standorte nur Backends innerhalb der lokalen Region erreichen. Frontends ohne Bereitstellungs-Backends in der lokalen Region verwerfen den gesamten Traffic.

Diagramm zur strikten Isolation

Isolation aktivieren

gcloud

Führen Sie die folgenden Schritte aus, um eine Isolationskonfiguration mit der Google Cloud CLI zu erstellen.

  1. Führen Sie den folgenden Befehl aus, um eine serviceLbPolicy zu erstellen:

    gcloud network-services service-lb-policies create my-isolation-policy \
        --isolation-config-granularity=REGION \
        --isolation-config-mode=ISOLATION_MODE \
        --location=global
    

    Ersetzen Sie ISOLATION_MODE durch eine der folgenden Optionen:

    1. NEAREST: Der Traffic wird an die nächstgelegene Region gesendet.
    2. STRICT: Der Traffic schlägt fehl, wenn in derselben Region wie das Frontend keine bereitstellenden Backends verfügbar sind.

    Wenn nicht explizit angegeben, ist NEAREST der Standardwert. Beachten Sie, dass Sie dieses Feld nur angeben können, wenn auch das Flag --isolation-granularity festgelegt ist.

    Wenn Sie bereits eine Richtlinie haben, können Sie sie alternativ mit dem folgenden Befehl aktualisieren:

    gcloud network-services service-lb-policies update POLICY_NAME \
        --isolation-config-granularity=REGION \
        --isolation-config-mode=ISOLATION_MODE \
        --location=global
    

    Ersetzen Sie POLICY_NAME durch den Namen Ihrer vorhandenen Richtlinie.

  2. Nachdem eine serviceLbPolicy-Ressource erstellt oder aktualisiert wurde, hängen Sie sie an Ihre backendService-Ressource an:

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
      ‐‐service-lb-policy POLICY_URL
    

    Ersetzen Sie BACKEND_SERVICE_NAME durch den Namen Ihres Backend-Dienstes.

Isolation deaktivieren

Sie haben zwei Möglichkeiten, diese Funktion zu deaktivieren:

  1. Legen Sie den Wert isolationConfigs auf „Nicht angegeben“ fest.
  2. Entfernen Sie ServiceLbPolicy aus dem Dienst, wenn es das einzige Feature ist, das Sie mit dieser Richtlinie aktiviert haben.

isolationConfigs auf „Nicht angegeben“ festlegen

Führen Sie den folgenden Befehl aus, um isolationConfigs auf „Nicht angegeben“ festzulegen:

gcloud network-services service-lb-policies update my-isolation-policy \
  --isolation-config-granularity=unspecified \
  --isolation-config-mode=unspecified \
  --location=global

ServiceLbPolicy aus dem Dienst entfernen

Führen Sie den folgenden Befehl aus, um den ServiceLbPolicy zu entfernen:

gcloud network-services service-lb-policies delete my-isolation-policy --location=global

Support, Diagnose und Fehlerbehebung

In diesem Abschnitt werden mögliche Probleme nach dem Aktivieren dieser Funktion beschrieben.

Backends überlastet

Dieses Feature bietet Isolationsunterstützung. Daher wird der Traffic nicht in eine Remote-Region verschoben, wenn die lokale Region voll ist. Wenn diese Funktion aktiviert ist, könnten einige Ihrer Backends überlastet sein. Wenn Sie dieses Verhalten nicht wünschen, sollten Sie diese Funktion deaktivieren. Sie können auch das Autoscaling aktivieren, um Backend-Überlastungen besser zu bewältigen.

Traffic wurde umgeleitet

Diese Funktion verhindert kapazitätsbedingten Traffic-Überlauf. Wenn Ihre Backends vor dem Aktivieren dieser Funktion überlastet waren, wurde der Traffic möglicherweise bereits in eine Remote-Region verschoben. In diesem Fall könnte die Aktivierung dieser Funktion dazu führen, dass dieser Traffic wieder zurückverlagert wird.

Traffic wurde nicht umgestellt

Diese Funktion verhindert kapazitätsbedingten Traffic-Überlauf. Wenn Ihre Backends vor dem Aktivieren dieses Features nicht überlastet waren, ist es wahrscheinlich, dass die nächstgelegene Region den gesamten Traffic verarbeiten kann. In diesem Fall führt das Aktivieren dieser Funktion möglicherweise nicht zu kurzfristigen Traffic-Verschiebungen.

Traffic wurde verschoben, nachdem Backends zu einer Region hinzugefügt oder daraus entfernt wurden

Wenn diese Funktion aktiviert ist, kann Traffic verschoben werden, wenn einer Region neue Backends hinzugefügt werden. Das ist normal, da Cloud Service Mesh versucht, den Traffic an diese Backends weiterzuleiten, um die Gesamtlatenz des Netzwerks zu optimieren. Wenn die letzten Back-Ends entfernt werden, sendet Cloud Service Mesh Traffic an eine Remote-Region. Das ist ebenfalls normal.

Fehlgeschlagene Anfragen

Wenn der Isolationsmodus STRICT aktiviert ist und keine Back-Ends in derselben Region wie das Frontend bereitgestellt werden, schlägt der Traffic fehl. Wenn dies nicht das gewünschte Verhalten ist, achten Sie darauf, dass Sie Back-Ends in jeder Region haben, in die Traffic gesendet werden soll.