TCP-Traffic-Routing einrichten

In dieser Anleitung wird beschrieben, wie Sie Cloud Service Mesh verwenden können, um Traffic an Dienste weiterzuleiten, die TCP-Traffic verarbeiten. Dazu gehören Datenbanken, VoIP-Dienste und Verwaltungsplattformen, die TCP-Traffic an bestimmten Ports oder Portbereichen empfangen.

Dieser Leitfaden gilt für die Bereitstellung mit den älteren APIs. Wenn Sie das neue Dienstrouting-APIs, die sich in der Vorabversion befinden, finden Sie unter Cloud Service Mesh-Einrichtung für TCP-Dienste mit einer TCPRoute-Ressource.

Mit dieser Anleitung können Sie Folgendes tun:

  • Einen Dienst einrichten, der eine Sammlung identischer Back-Ends oder Endpunkte darstellt, die TCP-Anfragen von Clients akzeptieren.
  • Eine Routingregelzuordnung einrichten, damit Envoy-Proxys, die von Cloud Service Mesh konfiguriert werden, TCP-Anfragen senden können.

Die folgenden Diagramme zeigen, wie TCP-Routing für VM-Instanzen bzw. Netzwerk-Endpunktgruppen (NEGs) funktioniert.

Grafik: Compute Engine API-Ressourcen für VMs
Cloud Service Mesh für TCP, Compute Engine-Back-Ends einrichten (zum Vergrößern klicken)


Grafik: Compute Engine API-Ressourcen für NEGs.
Cloud Service Mesh für TCP-, NEG-Back-Ends einrichten (zum Vergrößern klicken)

Vorbereitung

  • Diese Anleitung baut auf dem Leitfaden zur Vorbereitung von Envoy für Service Mesh auf und setzt voraus, dass Sie mit der grundlegenden Funktionsweise von Cloud Service Mesh vertraut sind.
  • Der Leitfaden konzentriert sich auf Aspekte der Cloud Service Mesh-Einrichtung, die sich unterscheiden. wenn Sie Ihre Dienste und das Routing für TCP-Traffic konfigurieren.
  • In dieser Anleitung wird davon ausgegangen, dass Sie bereits eine verwaltete Instanzgruppe (Managed Instance Group, MIG) oder NEG eingerichtet haben.

Load-Balancing-Ressourcen konfigurieren

Führen Sie die im Folgenden aufgeführten Schritte aus, um die Load-Balancing-Ressourcen zu konfigurieren.

TCP-Systemdiagnose erstellen

Mit VMs einrichten

Verwenden Sie beim Konfigurieren von MIGs den folgenden Befehl, um eine globale Systemdiagnose zu erstellen. Ersetzen Sie PORT durch die TCP-Portnummer, die diese Systemdiagnose überwacht:

gcloud compute health-checks create tcp td-vm-health-check \
    --global \
    --port=PORT

Mit NEGs einrichten

Verwenden Sie zum Konfigurieren von NEGs den folgenden Befehl, um eine Systemdiagnose zu erstellen:

gcloud compute health-checks create tcp td-gke-health-check \
    --use-serving-port

Weitere Informationen zu Systemdiagnosen finden Sie hier:

Firewallregel für die Systemdiagnose erstellen

Mit dieser Regel können Google Cloud-Systemdiagnosen Ihre Back-Ends erreichen.

gcloud

gcloud compute firewall-rules create fw-allow-health-checks \
  --action=ALLOW \
  --direction=INGRESS \
  --source-ranges=35.191.0.0/16,130.211.0.0/22 \
  --target-tags=TAGS \
  --rules=tcp:80

Weitere Informationen zu Firewallregeln für Systemdiagnosen finden Sie hier:

Back-End-Dienst für Ihre TCP-Back-Ends erstellen

Die Einrichtung des Back-End-Dienstes für TCP mit Cloud Service Mesh unterscheidet sich geringfügig aus der HTTP-Einrichtung. Diese Unterschiede werden in den folgenden Schritten dargestellt.

Mit VMs einrichten

Wenn Sie MIGs konfigurieren, erstellen Sie mit dem folgenden Befehl einen Backend-Dienst und fügen die Systemdiagnose hinzu:

 gcloud compute backend-services create td-vm-service \
     --global \
     --load-balancing-scheme=INTERNAL_SELF_MANAGED \
     --health-checks=td-vm-health-check \
     --protocol=TCP \
     --global-health-checks

Im letzten Schritt zum Einrichten des Backend-Dienstes fügen Sie die Backends hinzu. Da dieser Schritt zur Standardeinrichtung von Cloud Service Mesh gehört, die auch für TCP-basierte Dienste gilt, wird er hier nicht dargestellt. Weitere Informationen finden Sie unter Back-End-Dienst erstellen im Einrichtungsleitfaden für Compute Engine-VMs mit automatischer Envoy-Bereitstellung.

Mit NEGs einrichten

Wenn Sie NEGs konfigurieren, verwenden Sie die folgenden Befehle, um einen Back-End-Dienst zu erstellen und die Systemdiagnose mit dem Back-End-Dienst zu verknüpfen:

gcloud compute backend-services create td-gke-service \
    --global \
    --health-checks=td-gke-health-check \
    --protocol=TCP \
    --load-balancing-scheme=INTERNAL_SELF_MANAGED

Im letzten Schritt zur Einrichtung des Back-End-Dienstes muss Ihre Back-End-Gruppe hinzugefügt werden. Da dieser Schritt der Standardeinrichtung des Cloud Service Mesh entspricht (in anderen nichts speziell für TCP-basierte Dienste), wird dies hier nicht angezeigt. Weitere Informationen finden Sie unter Back-End-Dienst erstellen im Einrichtungsleitfaden für GKE-Pods mit automatischer Envoy-Einschleusung.

Routing für TCP-basierten Back-End-Dienst einrichten

In diesem Abschnitt erstellen Sie einen globalen Ziel-TCP-Proxy sowie eine globale Weiterleitungsregel. Mit diesen Ressourcen können Ihre Anwendungen mit den neu erstellten Back-End-Diensten Traffic an die Back-Ends senden.

Beachten Sie dabei Folgendes:

  • Die Weiterleitungsregel muss das Load-Balancing-Schema INTERNAL_SELF_MANAGED haben.
  • Die virtuelle IP-Adresse (VIP) und der Port, die Sie in der Weiterleitungsregel konfigurieren, sind die VIP und der Port, die Ihre Anwendungen beim Senden von Traffic an Ihre TCP-Dienste verwenden. Sie können die VIP aus einem Ihrer Subnetze auswählen. Cloud Service Mesh nutzt diese VIP und den Port, um Clientanfragen einem bestimmten Back-End-Dienst zuzuordnen.

    Informationen darüber, wie Clientanfragen Back-End-Diensten zugeordnet werden, finden Sie unter Service Discovery.

gcloud

  1. Mit dem folgenden Befehl erstellen Sie den Ziel-TCP-Proxy. Ersetzen Sie BACKEND_SERVICE durch den Namen des im vorherigen Schritt erstellten Back-End-Dienstes. Im folgenden Beispiel wird td-tcp-proxy als Name für den Ziel-TCP-Proxy verwendet. Sie können aber einen beliebigen Namen nutzen, der Ihren Anforderungen entspricht.

    gcloud compute target-tcp-proxies create td-tcp-proxy \
       --backend-service=BACKEND_SERVICE
    
  2. Erstellen Sie die Weiterleitungsregel. Mit der Weiterleitungsregel werden die VIP und der Port angegeben, die für die Zuordnung von Clientanfragen zu einem bestimmten Back-End-Dienst verwendet werden. Weitere Informationen finden Sie in der gcloud-Befehlsreferenz unter gcloud compute forwarding-rules create.

    gcloud compute forwarding-rules create td-tcp-forwarding-rule \
        --global \
        --load-balancing-scheme=INTERNAL_SELF_MANAGED \
        --address=VIP\
        --target-tcp-proxy=td-tcp-proxy \
        --ports=PORT \
        --network=default
    

Derzeit ist Cloud Service Mesh so konfiguriert, dass Traffic über Load-Balancing Die in der Weiterleitungsregel angegebene virtuelle IP-Adresse für Ihre Back-Ends.

Fehlerbehebung

Wenn Ihre Anwendungen versuchen, Anfragen an Ihre TCP-basierten Dienste zu senden, gehen Sie so vor:

  • Prüfen Sie, ob der Port der TCP-Systemdiagnose mit dem Port übereinstimmt, über den die TCP-Anwendung Traffic für die Systemdiagnose erwartet.
  • Prüfen Sie, ob der Portname des Back-End-Dienstes mit dem in der Instanzgruppe angegebenen Portnamen übereinstimmt.

Nächste Schritte