Menyiapkan perutean traffic TCP

Panduan ini menunjukkan cara menggunakan Traffic Director untuk mengarahkan traffic ke layanan yang menangani traffic TCP. Layanan ini mencakup database, layanan VOIP, dan platform pengelolaan, yang diharapkan menerima traffic TCP pada port atau rentang port tertentu.

Panduan ini berlaku untuk deployment dengan API lama. Jika Anda menggunakan API pemilihan rute layanan baru, yang masih dalam tahap pratinjau, lihat Penyiapan Traffic Director untuk layanan TCP dengan resource TCPRoute.

Gunakan panduan ini untuk melakukan hal berikut:

  • Siapkan layanan yang merepresentasikan kumpulan backend atau endpoint identik yang menerima permintaan TCP dari klien.
  • Siapkan peta aturan perutean agar proxy Envoy yang dikonfigurasi Traffic Director dapat mengirim permintaan TCP.

Diagram berikut menunjukkan cara kerja pemilihan rute TCP untuk instance mesin virtual (VM) dan grup endpoint jaringan (NEG).

Resource Compute Engine API untuk VM.
Menyiapkan Traffic Director untuk TCP, backend Compute Engine (klik untuk memperbesar)


Resource Compute Engine API untuk NEG.
Menyiapkan Traffic Director untuk backend NEG dan TCP (klik untuk memperbesar)

Persiapan

  • Panduan ini dibuat berdasarkan panduan persiapan Envoy for service mesh, dan mengasumsikan bahwa Anda telah memiliki pemahaman dasar tentang cara kerja Traffic Director.
  • Panduan ini berfokus pada aspek penyiapan Traffic Director 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

Menyiapkan 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 referensi berikut:

Membuat aturan firewall untuk health check

Aturan ini mengaktifkan 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 referensi berikut:

Membuat layanan backend untuk backend TCP Anda

Penyiapan layanan backend untuk TCP dengan Traffic Director sedikit berbeda dengan penyiapan untuk HTTP. Langkah-langkah berikut menggambarkan perbedaan tersebut.

Menyiapkan 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 merupakan penyiapan Traffic Director standar (dengan kata lain, tidak ada yang spesifik untuk layanan berbasis TCP), langkah ini tidak ditampilkan di sini. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan backend di panduan penyiapan 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. Karena langkah ini merupakan penyiapan Traffic Director standar (dengan kata lain, tidak ada yang spesifik untuk layanan berbasis TCP), langkah ini tidak ditampilkan di sini. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan backend di panduan penyiapan untuk Pod GKE dengan injeksi Envoy otomatis.

Menyiapkan perutean untuk layanan backend berbasis TCP

Di bagian ini, Anda akan membuat proxy TCP target global dan aturan penerusan global. Resource ini memungkinkan aplikasi Anda mengirimkan 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 (VIP) dan port virtual 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. Traffic Director menggunakan 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

  1. Gunakan perintah berikut untuk membuat proxy TCP target; ganti BACKEND_SERVICE dengan nama layanan backend yang dibuat di langkah sebelumnya. Pada contoh berikut, kami menggunakan td-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
    
  2. 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 perintah gcloud.

    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, Traffic Director dikonfigurasi untuk melakukan load balancing terhadap 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:

  • Konfirmasi bahwa port health check TCP cocok dengan port tempat aplikasi TCP diharapkan untuk menerima traffic health check.
  • Konfirmasi bahwa nama port layanan backend cocok dengan yang ditentukan dalam grup instance.

Langkah selanjutnya