Penemuan layanan
Traffic Director menyediakan layanan dan penemuan endpoint. Fitur ini memungkinkan Anda mengelompokkan instance virtual machine (VM) dan instance container yang menjalankan kode Anda sebagai endpoint layanan.
Traffic Director memantau layanan ini sehingga dapat berbagi informasi terbaru dengan kliennya. Oleh karena itu, jika salah satu aplikasi Anda menggunakan klien Traffic Director-nya (seperti proxy file bantuan Envoy) untuk mengirim permintaan, aplikasi tersebut akan mendapatkan manfaat dari informasi terbaru tentang layanan Anda.
Dalam konteks Traffic Director, klien adalah kode aplikasi yang berjalan pada VM atau penampung yang merumuskan permintaan untuk dikirim ke server. Server adalah kode aplikasi yang menerima permintaan tersebut. Klien Traffic Director adalah Envoy, gRPC, atau klien xDS lainnya yang terhubung ke Traffic Director dan merupakan bagian dari bidang data.
Di bidang data, Envoy atau gRPC melakukan hal berikut:
- Fitur ini memeriksa permintaan dan mencocokkan permintaan tersebut dengan layanan backend, resource yang Anda konfigurasi selama deployment.
- Setelah permintaan dicocokkan, Envoy atau gRPC akan memilih backend atau endpoint dan mengarahkan permintaan ke backend atau endpoint tersebut.
Penemuan layanan
Traffic Director menyediakan penemuan layanan. Saat mengonfigurasi Traffic Director, Anda membuat layanan backend. Anda juga menentukan aturan pemilihan rute yang menentukan cara permintaan keluar (permintaan yang dikirim oleh kode aplikasi Anda dan ditangani oleh klien Traffic Director) dicocokkan dengan layanan tertentu. Saat klien Traffic Director menangani permintaan yang cocok dengan aturan, klien Traffic Director dapat memilih layanan yang akan menerima permintaan tersebut.
Contoh:
- Anda memiliki VM yang menjalankan aplikasi. VM ini memiliki proxy file bantuan Envoy yang terhubung ke Traffic Director dan menangani permintaan keluar atas nama aplikasi.
- Anda telah mengonfigurasi layanan backend yang bernama
payments
. Layanan backend ini memiliki dua backend grup endpoint jaringan (NEG) yang mengarah ke berbagai instance container yang menjalankan kode untuk layananpayments
Anda. - Anda telah mengonfigurasi peta aturan perutean yang memiliki aturan penerusan (misalnya alamat IP
0.0.0.0
dan port80
), proxy target, dan peta URL (misalnya nama hostpayments.example.com
yang mengarah ke layananpayments
).
Dengan konfigurasi ini, saat aplikasi Anda (di VM) mengirimkan permintaan HTTP
ke payments.example.com
pada port 80
, klien Traffic Director akan mengetahui bahwa
permintaan ini ditujukan untuk layanan payments
.
Saat Anda menggunakan Traffic Director dengan layanan gRPC tanpa proxy, penemuan layanan juga berfungsi serupa. Namun, library gRPC yang bertindak sebagai klien Traffic Director hanya mendapatkan informasi tentang layanan yang Anda tentukan resolver xDS-nya. Secara default, Envoy mendapatkan informasi tentang semua layanan yang dikonfigurasi pada jaringan Virtual Private Cloud (VPC) yang ditentukan dalam file bootstrap Envoy.
Penemuan endpoint
Penemuan layanan memungkinkan klien mengetahui tentang layanan Anda. Dengan penemuan endpoint, klien dapat mengetahui tentang instance yang menjalankan kode Anda.
Saat membuat layanan, Anda juga menentukan backend untuk layanan tersebut. Backend ini adalah VM dalam grup instance terkelola (MIG) atau container dalam NEG. Traffic Director memantau MIG dan NEG ini agar mengetahui kapan instance dan endpoint dibuat dan dihapus.
Traffic Director terus membagikan informasi terbaru tentang layanan ini kepada kliennya. Informasi ini memungkinkan klien menghindari pengiriman traffic ke endpoint yang sudah tidak ada lagi. Hal ini juga memungkinkan klien mempelajari endpoint baru dan memanfaatkan kapasitas tambahan yang disediakan oleh endpoint tersebut.
Dalam contoh sebelumnya, Traffic Director menampilkan dua endpoint
yang responsif di MIG-1 dan tiga endpoint responsif di MIG-2 untuk
shopping-cart
layanan. Selain menambahkan endpoint ke MIG atau NEG dan menyiapkan Traffic Director, Anda tidak memerlukan konfigurasi tambahan untuk mengaktifkan penemuan layanan dengan Traffic Director.
Melakukan intersepsi traffic proxy file bantuan di Traffic Director
Traffic Director mendukung model proxy sidecar. Pada model ini, saat
aplikasi mengirimkan traffic ke tujuannya, iptables
akan menangkap traffic
dan mengalihkannya ke proxy sidecar pada host tempat aplikasi
berjalan. Proxy file bantuan memutuskan cara melakukan load balancing pada traffic, lalu
mengirim traffic ke tujuannya.
Dalam diagram berikut, yang mengasumsikan bahwa Traffic Director dikonfigurasi dengan benar, Envoy adalah proxy file bantuan. Proxy file bantuan berjalan di host yang sama dengan aplikasi.
Layanan contoh yang disebut Web
dikonfigurasi pada alamat IP virtual (VIP)
10.0.0.1:80
tempat Traffic Director dapat menemukan dan melakukan load balancing.
Traffic Director menemukan penyiapan melalui konfigurasi aturan penerusan, yang menyediakan VIP dan port. Backend untuk layanan Web
telah dikonfigurasi dan berfungsi, tetapi berada di luar host VM Compute Engine dalam diagram.
Traffic Director memutuskan bahwa backend optimal untuk traffic ke Web
layanan
dari host adalah 192.168.0.1:80
.
Alur traffic dalam diagram adalah sebagai berikut:
- Aplikasi mengirimkan traffic ke layanan
Web
, yang di-resolve ke alamat IP10.0.0.1:80
. - Netfilter pada host dikonfigurasi sehingga traffic yang ditujukan ke
10.0.0.1:80
dialihkan ke10.0.0.1:15001
. - Traffic dialihkan ke
127.0.0.1:15001
, port intersepsi proxy Envoy. - Pemroses intersepsi proxy Envoy di
127.0.0.1:15001
menerima traffic dan melakukan pencarian untuk tujuan asli permintaan (10.0.0.1:80
). Pencarian membuat192.168.0.1:8080
dipilih sebagai backend optimal, sebagaimana diprogram oleh Traffic Director. - Envoy membuat koneksi melalui jaringan dengan
192.168.0.1:8080
dan membuat proxy traffic HTTP antara aplikasi dan backend ini hingga koneksi dihentikan.
Opsi intersepsi traffic dengan deployment Envoy otomatis
Jika Anda menggunakan deployment Envoy otomatis dengan VM, Traffic Director memiliki opsi intersepsi traffic tambahan. Anda dapat melakukan hal berikut dengan opsi ini:
- Intersepsi semua lalu lintas
- Mengecualikan port, rentang port, alamat IP, atau rentang CIDR tertentu
Jika Anda menggunakan resource Mesh
dan Gateway
API pemilihan rute layanan baru, semua traffic akan ditangkap secara otomatis.
Untuk mengetahui informasi selengkapnya, lihat Opsi untuk penyiapan VM Compute Engine dengan deployment Envoy otomatis.
Langkah selanjutnya
- Untuk mempelajari cara Traffic Director mengirimkan load balancing global untuk microservice internal Anda dengan proxy file bantuan, lihat Load balancing Traffic Director.
- Untuk mempelajari Traffic Director lebih lanjut, lihat ringkasan Traffic Director.