Menyiapkan pemilihan rute traffic TCP

Panduan ini menunjukkan cara menggunakan Cloud Service Mesh untuk merutekan traffic ke layanan yang menangani lalu lintas TCP. Layanan ini termasuk {i>database<i}, layanan VOIP, dan manajemen platform, yang mengharapkan untuk menerima lalu lintas TCP pada porta atau port tertentu.

Panduan ini berlaku untuk deployment dengan API lama. Jika Anda menggunakan API perutean layanan, yang masih dalam versi 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 identik atau endpoint yang menerima permintaan TCP dari klien.
  • Menyiapkan peta aturan pemilihan rute agar Envoy melakukan proxy tersebut ke Cloud Service Mesh dapat mengirim permintaan TCP.

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

Resource Compute Engine API untuk VM.
Menyiapkan Cloud Service Mesh untuk TCP, backend Compute Engine (klik untuk memperbesar)


Referensi Compute Engine API untuk NEG.
Menyiapkan Cloud Service Mesh untuk TCP, backend NEG (klik untuk memperbesar)

Persiapan

  • Panduan ini dibuat berdasarkan Envoy untuk mesh layanan persiapan, dan mengasumsikan bahwa Anda sudah memiliki pemahaman dasar tentang cara Cloud Service Mesh.
  • Panduan ini berfokus pada aspek penyiapan Cloud Service Mesh yang berbeda saat Anda mengkonfigurasi layanan dan {i>routing<i} Anda untuk lalu lintas 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; ganti PORT dengan port TCP nomor yang dipantau health check ini:

gcloud compute health-checks create tcp td-vm-health-check \
    --global \
    --port=PORT

Siapkan dengan NEG

Jika Anda mengonfigurasi NEG, gunakan perintah berikut untuk membuat respons periksa:

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 memungkinkan health check dari health check Google Cloud untuk mencapai 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

Guna 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 Cloud Service Mesh sedikit berbeda dari pengaturan untuk HTTP. Langkah-langkah berikut menangkap perbedaan tersebut.

Penyiapan dengan VM

Jika Anda mengonfigurasi MIG, gunakan 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 (di kata, tidak spesifik untuk layanan berbasis TCP), itu tidak ditampilkan di sini. Untuk informasi selengkapnya, lihat Membuat layanan backend dalam panduan penyiapan untuk VM Compute Engine dengan Envoy otomatis deployment.

Siapkan dengan NEG

Jika Anda mengonfigurasi NEG, gunakan perintah berikut untuk membuat layanan backend dan mengaitkan health check tersebut 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 backend Anda ras. Karena langkah ini adalah penyiapan Cloud Service Mesh standar (di kata, tidak spesifik untuk layanan berbasis TCP), itu tidak ditampilkan di sini. Untuk informasi selengkapnya, lihat Membuat layanan backend dalam 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 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 virtual (VIP) dan porta yang Anda konfigurasikan di penerusan adalah VIP dan porta yang digunakan aplikasi Anda saat mengirimkan traffic ke layanan TCP Anda. Anda dapat memilih VIP dari salah satu subnet Anda. Cloud Service Mesh menggunakan VIP dan port ini untuk mencocokkan permintaan klien layanan backend tertentu.

    Untuk 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 telah dibuat di langkah sebelumnya. Dalam contoh berikut, kami menggunakan td-tcp-proxy sebagai nama untuk proxy TCP target, tetapi Anda dapat memilih nama yang sesuai dengan kebutuhan Anda.

    gcloud compute target-tcp-proxies create td-tcp-proxy \
       --backend-service=BACKEND_SERVICE
    
  2. Membuat aturan penerusan. Aturan penerusan menentukan alamat IP port yang digunakan saat mencocokkan permintaan klien dengan backend tertentu layanan. 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, Cloud Service Mesh dikonfigurasi untuk melakukan load balancing pada traffic 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 porta health check TCP cocok dengan porta tempat TCP aplikasi mengharapkan menerima traffic health check.
  • Memastikan bahwa nama port layanan backend cocok dengan yang ditentukan di grup instance.

Langkah selanjutnya