TCP-Dienste einrichten
In dieser Anleitung erfahren Sie, wie Sie Cloud Service Mesh so einrichten, dass TCP-Dienste und TCPRoute
-Ressourcen verwendet werden.
Cloud Service Mesh mit TCP-Diensten und TCPRoute
ähnelt der Konfiguration des Envoy-Sidecar-Proxys mit HTTP-Diensten. Ausnahmen sind, dass der Backend-Dienst einen TCP-Dienst bereitstellt und das Routing auf TCP/IP-Parametern statt auf dem HTTP-Protokoll basiert.
Hinweis
Führen Sie die unter Einrichtung mit Envoy und proxylosen Arbeitslasten vorbereiten beschriebenen Aufgaben aus.
Mesh
-Ressource konfigurieren
Erstellen Sie in einer Datei mit dem Namen
mesh.yaml
die Spezifikation dermesh
-Ressource.name: sidecar-mesh
Verwenden Sie die Datei
mesh.yaml
, um diemesh
-Ressource zu erstellen.gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global
TCP-Server konfigurieren
Dieser Teil der Anleitung ist nicht spezifisch für die neuen APIs und verwendet vorhandene Backend-Dienste, Systemdiagnosen und MIG-Ressourcen.
Zu Demonstrationszwecken erstellen Sie einen Backend-Dienst mit automatisch skalierten VMs mithilfe von verwalteten Instanzgruppen, die einen Test-TCP-Dienst an Port 10000
bereitstellen.
Erstellen Sie eine Compute Engine-VM-Instanzvorlage mit einem Testdienst an Port
10000
.gcloud compute instance-templates create tcp-td-vm-template \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=allow-health-checks \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script="#! /bin/bash sudo apt-get update -y sudo apt-get install netcat -y while true; do echo 'Hello from TCP service' | nc -l -s 0.0.0.0 -p 10000; done &"
Erstellen Sie anhand der Vorlage eine verwaltete Instanzgruppe.
gcloud compute instance-groups managed create tcp-td-mig-us-east1 \ --zone=ZONE \ --size=1 \ --template=tcp-td-vm-template
Legen Sie für die benannten Ports in der erstellten verwalteten Instanzgruppe den Port 10000 fest.
gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1
--zone=ZONE
--named-ports=tcp:10000Erstellen Sie eine Systemdiagnose.
gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000
Erstellen Sie eine Firewallregel, um eingehende Systemdiagnoseverbindungen zu Instanzen in Ihrem Netzwerk zuzulassen.
gcloud compute firewall-rules create tcp-vm-allow-health-checks \ --network default \ --action allow \ --direction INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags allow-health-checks \ --rules tcp:10000
Erstellen Sie einen globalen Backend-Dienst mit dem Load-Balancing-Schema
INTERNAL_SELF_MANAGED
und hängen Sie die Systemdiagnose an den Backend-Dienst an. In diesem Beispiel wird die verwaltete Instanzgruppe verwendet, die den zuvor erstellten TCP-Beispieldienst ausführt.gcloud compute backend-services create tcp-helloworld-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --protocol=TCP \ --health-checks tcp-helloworld-health-check
Fügen Sie dem Backend-Dienst die verwaltete Instanzgruppe hinzu.
gcloud compute backend-services add-backend tcp-helloworld-service \ --instance-group tcp-td-mig-us-east1 \ --instance-group-zone=ZONE \ --global
Routing mit TCPRoute
einrichten
In diesem Abschnitt richten Sie das Routing ein.
Erstellen Sie in einer Datei mit dem Namen
tcp_route.yaml
die SpezifikationTcpRoute
.Sie können entweder
$PROJECT_ID
oder$PROJECT_NUMBER
verwenden.name: helloworld-tcp-route meshes: - projects/$PROJECT_NUMBER/locations/global/meshes/sidecar-mesh rules: - action: destinations: - serviceName: projects/$PROJECT_NUMBER/locations/global/backendServices/tcp-helloworld-service matches: - address: '10.0.0.1/32' port: '10000'
Erstellen Sie mit der Spezifikation
tcp_route.yaml
die RessourceTcpRoute
.gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global
TCP-Client mit einem Envoy-Sidecar erstellen
Erstellen Sie eine Instanzvorlage und anschließend eine VM mit Envoy, die mit Cloud Service Mesh verbunden ist.
gcloud beta compute instance-templates create td-vm-client-template \ --image-family=debian-10 \ --image-project=debian-cloud \ --service-proxy=enabled,mesh=sidecar-mesh \ --metadata=startup-script="#! /bin/bash sudo apt-get update -y sudo apt-get install netcat -y"
gcloud compute instances create td-vm-client \ --zone=ZONE \ --source-instance-template td-vm-client-template
Melden Sie sich bei der von Ihnen erstellten VM an.
gcloud compute ssh td-vm-client
Prüfen Sie die Konnektivität zu den Testdiensten, die Sie mit dem Dienstprogramm
netcat
erstellt haben.echo 'Hi TCP Service' | nc 10.0.0.1 10000
Der Testdienst sollte die Wortgruppe Hallo vom TCP-Dienst zurückgeben. Sie sollten auch den Text sehen, den Sie vom netcat
-Dienst zurückgegeben haben, der auf der Remote-VM ausgeführt wird.
Nächste Schritte
- Informationen zum Auflisten von Routenressourcen, die mit einer
Mesh
- oderGateway
-Ressource verknüpft sind, finden Sie unterRoute
-Ressourcen auflisten. Diese Feature befindet sich im Vorschaumodus.