Menyiapkan pemilihan rute traffic TCP
Panduan ini menunjukkan cara menggunakan Cloud Service Mesh untuk mengarahkan traffic ke layanan yang menangani traffic TCP. Layanan ini mencakup database, layanan VOIP, dan platform pengelolaan, yang diharapkan akan menerima traffic TCP pada port atau rentang port tertentu.
Panduan ini berlaku untuk deployment dengan API lama. Jika Anda menggunakan API perutean layanan baru yang sedang dalam pratinjau, lihat Penyiapan Cloud Service Mesh untuk layanan TCP dengan resource TCPRoute
.
Gunakan panduan ini untuk melakukan hal berikut:
- Siapkan layanan yang mewakili kumpulan backend atau endpoint identik yang menerima permintaan TCP dari klien.
- Siapkan peta aturan pemilihan rute sehingga proxy Envoy yang dikonfigurasi Cloud Service Mesh dapat mengirim permintaan TCP.
Diagram berikut menunjukkan cara kerja pemilihan rute TCP untuk instance virtual machine (VM) dan grup endpoint jaringan (NEG).
Persiapan
- Panduan ini dibuat berdasarkan panduan persiapan Envoy for service mesh, dan mengasumsikan bahwa Anda telah memiliki pemahaman dasar tentang cara kerja Cloud Service Mesh.
- Panduan ini berfokus pada aspek penyiapan Cloud Service Mesh yang berbeda saat Anda mengonfigurasi layanan dan perutean untuk traffic TCP.
- Panduan ini mengasumsikan bahwa Anda telah menyiapkan grup instance terkelola (MIG) atau NEG.
Mengonfigurasi resource load balancing
Gunakan langkah-langkah berikut untuk mengonfigurasi resource load balancing.
Membuat health check TCP
Penyiapan dengan VM
Jika Anda mengonfigurasi MIG, gunakan perintah berikut untuk membuat health check global. Ganti PORT
dengan nomor port TCP yang dipantau health check ini:
gcloud compute health-checks create tcp td-vm-health-check \ --global \ --port=PORT
Penyiapan dengan NEG
Jika Anda mengonfigurasi NEG, gunakan perintah berikut untuk membuat health check:
gcloud compute health-checks create tcp td-gke-health-check \ --use-serving-port
Untuk mengetahui informasi selengkapnya tentang health check, lihat berikut ini:
- Membuat health check dalam dokumentasi Cloud Load Balancing
gcloud compute health-checks create tcp
dalam referensi perintahgcloud
Membuat aturan firewall untuk health check
Aturan ini memungkinkan health check dari health checker Google Cloud untuk menjangkau backend Anda.
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
Untuk mengetahui informasi selengkapnya tentang aturan firewall untuk health check, lihat artikel berikut:
- Aturan firewall untuk health check dalam dokumentasi Cloud Load Balancing
gcloud compute firewall-rules create
dalam referensi perintahgcloud
(termasuk panduan untukTAGS
)
Membuat layanan backend untuk backend TCP Anda
Penyiapan layanan backend untuk TCP dengan Cloud Service Mesh sedikit berbeda dengan penyiapan untuk HTTP. Langkah-langkah berikut mencatat perbedaan tersebut.
Penyiapan dengan VM
Jika Anda mengonfigurasi MIG, gunakan perintah berikut untuk membuat layanan backend dan menambahkan health check:
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
Langkah terakhir untuk menyiapkan layanan backend adalah menambahkan backend Anda. Karena langkah ini adalah penyiapan Cloud Service Mesh standar (dengan kata lain, tidak ada yang spesifik untuk layanan berbasis TCP), langkah tersebut tidak ditampilkan di sini. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan backend di panduan penyiapan untuk VM Compute Engine dengan deployment Envoy otomatis.
Penyiapan dengan NEG
Jika Anda mengonfigurasi NEG, gunakan perintah berikut untuk membuat layanan backend dan mengaitkan health check dengan layanan backend:
gcloud compute backend-services create td-gke-service \ --global \ --health-checks=td-gke-health-check \ --protocol=TCP \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
Langkah terakhir untuk menyiapkan layanan backend adalah menambahkan grup backend Anda. Karena langkah ini adalah penyiapan Cloud Service Mesh standar (dengan kata lain, tidak ada yang spesifik untuk layanan berbasis TCP), langkah tersebut tidak ditampilkan di sini. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan backend di panduan penyiapan untuk Pod GKE dengan injeksi Envoy otomatis.
Menyiapkan pemilihan rute untuk layanan backend berbasis TCP
Di bagian ini, Anda akan membuat proxy TCP target global dan aturan penerusan global. Resource ini memungkinkan aplikasi Anda mengirim traffic ke backend dengan layanan backend yang baru dibuat.
Pertimbangkan hal berikut:
- Aturan penerusan Anda harus memiliki skema load balancing
INTERNAL_SELF_MANAGED
. Alamat IP virtual (VIP) dan port yang Anda konfigurasikan dalam aturan penerusan adalah VIP dan port yang digunakan aplikasi Anda saat mengirimkan traffic ke layanan TCP Anda. Anda dapat memilih VIP dari salah satu subnet Anda. Cloud Service Mesh menggunakan port VIP dan port ini untuk mencocokkan permintaan klien dengan layanan backend tertentu.
Untuk mengetahui informasi tentang cara permintaan klien dicocokkan dengan layanan backend, lihat Penemuan layanan.
gcloud
Gunakan perintah berikut untuk membuat proxy TCP target. Ganti
BACKEND_SERVICE
dengan nama layanan backend yang dibuat di langkah sebelumnya. Pada contoh berikut, kita menggunakantd-tcp-proxy
sebagai nama untuk proxy TCP target, tetapi Anda dapat memilih nama yang sesuai dengan kebutuhan.gcloud compute target-tcp-proxies create td-tcp-proxy \ --backend-service=BACKEND_SERVICE
Membuat aturan penerusan. Aturan penerusan menentukan VIP dan port yang digunakan saat mencocokkan permintaan klien dengan layanan backend tertentu. Untuk informasi selengkapnya, lihat
gcloud compute forwarding-rules create
dalam referensi perintahgcloud
.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
Pada tahap ini, Cloud Service Mesh dikonfigurasi untuk melakukan load balancing pada traffic untuk VIP yang ditentukan dalam aturan penerusan di seluruh backend Anda.
Pemecahan masalah
Jika aplikasi Anda mencoba mengirim permintaan ke layanan berbasis TCP, lakukan hal berikut:
- Pastikan port health check TCP cocok dengan port yang diharapkan oleh aplikasi TCP untuk menerima traffic health check.
- Pastikan nama port layanan backend cocok dengan yang ditentukan dalam grup instance.
Langkah selanjutnya
- Untuk melihat langkah-langkah lainnya dalam proses penyiapan, lihat Menyiapkan Cloud Service Mesh dengan Envoy.
- Untuk menemukan informasi pemecahan masalah Cloud Service Mesh umum, lihat Memecahkan masalah deployment yang menggunakan Envoy.