Menyiapkan layanan TCP
Traffic Director dengan layanan TCP dan TCPRoute
mirip dengan konfigurasi proxy sidecar Envoy
dengan layanan HTTP. Pengecualiannya adalah bahwa layanan backend menyediakan layanan TCP dan perutean didasarkan pada parameter TCP/IP, bukan pada protokol HTTP.
Sebelum memulai
Pastikan deployment Anda memenuhi prasyarat yang dijelaskan dalam panduan berikut:
- Bersiap untuk menyiapkan Traffic Director dengan Envoy
- Panduan penyiapan pemilihan rute layanan Traffic Director
Konfigurasi resource Mesh
Dalam file bernama
mesh.yaml
, buat spesifikasi resourcemesh
.name: sidecar-mesh
Gunakan file
mesh.yaml
untuk membuat resourcemesh
.gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global
Mengonfigurasi server TCP
Bagian panduan ini tidak khusus untuk API baru dan menggunakan layanan backend, health check, dan resource MIG yang sudah ada.
Untuk tujuan demonstrasi, buat layanan backend dengan VM yang diskalakan secara otomatis
menggunakan grup instance terkelola
yang melayani layanan TCP uji coba pada port 10000
.
Buat template instance VM Compute Engine dengan layanan pengujian pada 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 &"
Buat grup instance terkelola berdasarkan template ini.
gcloud compute instance-groups managed create tcp-td-mig-us-east1 \ --zone=ZONE \ --size=1 \ --template=tcp-td-vm-template
Tetapkan port bernama di grup instance terkelola yang dibuat ke port 10000.
gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1
--zone=ZONE
--named-ports=tcp:10000Membuat health check.
gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000
Buat aturan firewall untuk mengizinkan koneksi health check masuk ke instance di jaringan Anda.
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
Buat layanan backend global dengan skema load balancing
INTERNAL_SELF_MANAGED
dan tambahkan health check ke layanan backend. Contoh ini menggunakan grup instance terkelola yang menjalankan contoh layanan TCP yang Anda buat sebelumnya.gcloud compute backend-services create tcp-helloworld-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --protocol=TCP \ --health-checks tcp-helloworld-health-check
Tambahkan grup instance terkelola ke layanan backend.
gcloud compute backend-services add-backend tcp-helloworld-service \ --instance-group tcp-td-mig-us-east1 \ --instance-group-zone=ZONE \ --global
Siapkan pemilihan rute dengan TCPRoute
Di bagian ini, Anda akan menyiapkan pemilihan rute.
Dalam file bernama
tcp_route.yaml
, buat spesifikasiTcpRoute
.Anda dapat menggunakan
$PROJECT_ID
atau$PROJECT_NUMBER
.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'
Dengan menggunakan spesifikasi
tcp_route.yaml
, buat resourceTcpRoute
.gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global
Membuat klien TCP dengan file bantuan Envoy
Buat template instance, lalu buat VM dengan Envoy yang terhubung ke Traffic Director.
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
Login ke VM yang Anda buat.
gcloud compute ssh td-vm-client
Verifikasi konektivitas ke layanan pengujian yang Anda buat menggunakan utilitas
netcat
.echo 'Hi TCP Service' | nc 10.0.0.1 10000
Layanan pengujian akan menampilkan frasa Halo dari layanan
TCP. Anda juga akan dapat melihat teks apa pun yang diketik
yang ditampilkan oleh layanan netcat
yang berjalan di VM jarak jauh.