Verbindungsausgleich aktivieren

Durch den Verbindungsausgleich wird sichergestellt, dass in Bearbeitung befindliche Anfragen zuerst vollständig abgeschlossen werden, bevor eine VM aus einer Instanzgruppe oder ein Endpunkt von einer zonalen NEG entfernt wird.

Zum Aktivieren des Verbindungsausgleichs legen Sie im Back-End-Dienst ein Zeitlimit für den Verbindungsausgleich fest. Das Zeitlimit muss zwischen 0 und 3.600 Sekunden liegen.

Bestehende Anfragen an die entfernte VM haben für die eingestellte Dauer des Zeitlimits Zeit, abgeschlossen zu werden. Der Load-Balancer sendet keine neuen Anfragen an die entfernte VM. Nach dem Erreichen des Zeitlimits werden alle verbleibenden Verbindungen zur VM beendet.

Der Verbindungsausgleich beginnt, wenn Folgendes passiert:

Nach Ablauf des angegebenen Zeitlimits kann es bis zu 60 Sekunden dauern, bis die Instanz beendet wird.

Wenn Sie den Verbindungsausgleich für mehrere Back-End-Dienste aktivieren, die dieselben Instanzgruppen oder NEGs verwenden, wird der höchste Zeitlimitwert verwendet. Angenommen, dieselbe Instanzgruppe oder zonale NEG ist ein Back-End für zwei Back-End-Dienste, wobei ein Back-End-Dienst für den Verbindungsausgleich ein Zeitlimit von 100 Sekunden und der andere Back-End-Dienst ein Zeitlimit von 200 Sekunden hat. Google Cloud verwendet 200 Sekunden als effektives Zeitlimit für den Verbindungsausgleich, sodass vorhandene Verbindungen 200 Sekunden lang bestehen bleiben dürfen, bevor sie von Google Cloud beendet werden. Wenn das Back-End eine verwaltete Instanzgruppe ist, werden Vorgänge zum Löschen der Instanz um mindestens 200 Sekunden verzögert.

Spezifikationen

  • Der Verbindungsausgleich ist für Back-End-Dienste verfügbar, die Teil der folgenden Load-Balancer sind:

  • Wenn für den Verbindungsausgleich ein Zeitlimit festgelegt ist und eine Instanz aus der Instanzgruppe oder ein Endpunkt aus einer zonalen NEG entfernt wird, verhalten sich Google Cloud-Load-Balancer so:

    • An die entfernte Instanz oder den entfernten Endpunkt werden keine neuen Verbindungen gesendet.

    • Aktive TCP-Sitzungen, die vorhandene Verbindungen auf der entfernten Instanz oder dem entfernten Endpunkt unterstützen, können so lange bestehen bleiben, bis das konfigurierte Zeitlimit für den Verbindungsausgleich erreicht ist. Nach Ablauf des Zeitlimits beendet Google Cloud die vorhandenen Verbindungen auf der entfernten Instanz oder dem entfernten Endpunkt.

  • Wenn Sie kein Zeitlimit für den Verbindungsausgleich festlegen oder das Zeitlimit für den Verbindungsausgleich auf null (0) gesetzt ist, beendet Google Cloud vorhandene Verbindungen auf der entfernten Instanz oder dem entfernten Endpunkt so schnell wie möglich.

Verbindungsausgleich aktivieren

Console

  1. Öffnen Sie in der Google Cloud Console die Seite "Load-Balancing".
    Zur Seite "Load-Balancing"
  2. Klicken Sie bei Ihrem Load-Balancer auf Bearbeiten () oder erstellen Sie einen neuen Load-Balancer.
  3. Klicken Sie auf Back-End-Konfiguration.
  4. Klicken Sie am unteren Ende des Back-End-Dienstes auf Erweiterte Konfigurationen.
  5. Geben Sie im Feld Zeitlimit für Verbindungsausgleich einen Wert zwischen 0 und 3600 ein. Bei der Einstellung 0 wird der Verbindungsausgleich deaktiviert.

gcloud

Aktivieren Sie den Verbindungsausgleich für einen neuen oder vorhandenen Back-End-Dienst mithilfe des Flags --connection-draining-timeout. Die folgenden Beispiele zeigen, wie Sie das Zeitlimit für den Verbindungsausgleich ändern:

  • Für einen vorhandenen externen HTTP(S)-, SSL-Proxy- oder TCP-Proxy-Load-Balancer:

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --connection-draining-timeout=CONNECTION_TIMEOUT_SECS
    
  • Für einen vorhandenen internen TCP/UDP- oder HTTP(S)-Load-Balancer:

    gcloud compute backend-services update BACKEND_SERVICE \
        --region=REGION \
        --connection-draining-timeout=CONNECTION_TIMEOUT_SECS
    

Ersetzen Sie die Platzhalter durch gültige Werte:

  • BACKEND_SERVICE: Back-End-Dienst des Load-Balancers.
  • CONNECTION_TIMEOUT_SECS: Die Anzahl der Sekunden, die gewartet werden soll, bevor bestehende Verbindungen zu Instanzen oder Endpunkten beendet werden, zwischen einschließlich 0 und 3600 Sekunden. Bei der Einstellung 0 wird der Verbindungsausgleich deaktiviert. Das Zeitlimit für den Verbindungsausgleich gilt für alle Back-Ends des Back-End-Dienstes.

    Sie können auch den Befehl gcloud compute backend-services edit verwenden, um einen vorhandenen Back-End-Dienst zu aktualisieren.

API

Beim Erstellen oder Aktualisieren einer Instanz oder eines Endpunkts können Sie in der API den Verbindungsausgleich aktivieren. Senden Sie dazu eine Anfrage an den entsprechenden API-URI, damit das Feld connectionDraining in den Anfragetext aufgenommen wird. In den folgenden Beispielen wird gezeigt, wie Sie dieses Attribut durch Bearbeiten eines vorhandenen Back-End-Dienstes festlegen. Informationen zu weiteren erforderlichen Attributen finden Sie in der Dokumentation zum jeweiligen Load-Balancer.

Für externe HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancer:

PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices

Für interne TCP/UDP- und HTTP(S)-Load-Balancer:

PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/backendServices

{
   "name": "BACKEND_SERVICE",
   "connectionDraining": {
     "drainingTimeoutSec": CONNECTION_TIMEOUT_SECS
   }
}

Dabei gilt:

  • PROJECT_ID ist die Projekt-ID des Projekts, das Ihren Load-Balancer enthält.
  • BACKEND_SERVICE ist der von Ihrem Load-Balancer verwendete Back-End-Dienst.
  • CONNECTION_TIMEOUT_SECS ist die Anzahl der Sekunden, die gewartet werden soll, bevor Instanzen oder Endpunkte aus der Instanzgruppe oder NEG entfernt werden, zwischen einschließlich 0 und 3.600 Sekunden. Dieses Zeitlimit gilt für alle Instanzgruppen oder NEGs, die Teil des Back-End-Dienstes sind.

Weitere Informationen

Back-End-Dienste