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.
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:
- Systemdiagnosen erstellen in der Dokumentation zu Cloud Load Balancing
gcloud compute health-checks create tcp
in der Befehlsreferenz fürgcloud
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:
- Firewallregeln für Systemdiagnosen in der Dokumentation zu Cloud Load Balancing
gcloud compute firewall-rules create
in der Referenz zumgcloud
-Befehl (einschließlich Anleitung fürTAGS
)
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
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 wirdtd-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
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 untergcloud 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
- Die anderen Schritte im Einrichtungsprozess finden Sie unter Cloud Service Mesh mit Envoy einrichten.
- Allgemeine Informationen zur Fehlerbehebung für Cloud Service Mesh finden Sie unter Fehlerbehebung bei Bereitstellungen, die Envoy verwenden