Penemuan layanan
Cloud Service Mesh menyediakan penemuan layanan dan endpoint. Fitur ini memungkinkan Anda mengelompokkan instance virtual machine (VM) dan instance penampung yang menjalankan kode sebagai endpoint layanan Anda.
Cloud Service Mesh memantau layanan ini sehingga dapat membagikan informasi pemeriksaan kondisi terbaru kepada kliennya. Oleh karena itu, saat salah satu aplikasi Anda menggunakan klien Cloud Service Mesh (seperti proxy sidecar Envoy atau aplikasi gRPC tanpa proxy) untuk mengirim permintaan, aplikasi tersebut akan mendapatkan manfaat dari informasi terbaru tentang layanan Anda.
Dalam konteks Cloud Service Mesh, klien adalah kode aplikasi yang berjalan di VM atau penampung yang merumuskan permintaan untuk dikirim ke server. Server adalah kode aplikasi yang menerima permintaan tersebut. Klien Cloud Service Mesh adalah klien Envoy atau gRPC atau klien xDS lainnya yang terhubung ke Cloud Service Mesh dan merupakan bagian dari bidang data.
Di bidang data, Envoy atau gRPC melakukan hal berikut:
- Fungsi ini memeriksa permintaan dan mencocokkan permintaan dengan layanan backend, resource yang Anda konfigurasi selama deployment.
- Setelah permintaan dicocokkan, Envoy atau gRPC akan menerapkan kebijakan traffic atau keamanan yang sebelumnya dikonfigurasi, memilih backend atau endpoint, dan mengarahkan permintaan ke backend atau endpoint tersebut.
Penemuan layanan
Cloud Service Mesh menyediakan penemuan layanan. Saat mengonfigurasi Cloud Service Mesh, Anda membuat layanan backend. Anda juga menentukan aturan perutean yang menentukan cara permintaan keluar (permintaan yang dikirim oleh kode aplikasi Anda dan ditangani oleh klien Cloud Service Mesh) dicocokkan dengan layanan tertentu. Saat menangani permintaan yang cocok dengan aturan, klien Cloud Service Mesh dapat memilih layanan yang harus menerima permintaan tersebut.
Contoh:
- Anda memiliki VM yang menjalankan aplikasi. VM ini memiliki proxy sidecar Envoy yang terhubung ke Cloud Service Mesh dan menangani permintaan keluar atas nama aplikasi.
- Anda mengonfigurasi layanan backend bernama
payments
. Layanan backend ini memiliki dua backend grup endpoint jaringan (NEG) yang mengarah ke berbagai instance penampung yang menjalankan kode untuk layananpayments
Anda. - Anda mengonfigurasi resource
Mesh
yang menentukan mesh bernamasidecar-mesh
. - Anda mengonfigurasi resource
Route
yang menentukan tujuan traffic untuk layanan backendpayments
dan nama hosthelloworld-gce
.
Dengan konfigurasi ini, saat aplikasi Anda (di VM) mengirim permintaan HTTP
ke payments.example.com
, klien Cloud Service Mesh akan mengetahui bahwa
permintaan ini ditujukan untuk layanan payments
.
Saat Anda menggunakan Cloud Service Mesh dengan layanan gRPC tanpa proxy, penemuan layanan berfungsi dengan cara yang sama. Namun, library gRPC yang bertindak sebagai klien Cloud Service Mesh hanya mendapatkan informasi tentang layanan yang Anda tentukan untuk resolver xDS. Secara default, Envoy mendapatkan informasi tentang semua layanan yang dikonfigurasi di jaringan Virtual Private Cloud (VPC) yang ditentukan dalam file bootstrap Envoy.
Penemuan endpoint
Penemuan layanan memungkinkan klien mengetahui layanan Anda. Penemuan endpoint memungkinkan klien mengetahui 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. Cloud Service Mesh memantau MIG dan NEG ini sehingga dapat mengetahui kapan instance dan endpoint dibuat serta dihapus.
Cloud Service Mesh terus membagikan informasi terbaru tentang layanan ini kepada kliennya. Informasi ini memungkinkan klien menghindari pengiriman traffic ke endpoint yang tidak ada lagi. Hal ini juga memungkinkan klien mempelajari endpoint baru dan memanfaatkan kapasitas tambahan yang disediakan endpoint ini.
Selain menambahkan endpoint ke MIG atau NEG dan menyiapkan Cloud Service Mesh, Anda tidak memerlukan konfigurasi tambahan untuk mengaktifkan penemuan layanan dengan Cloud Service Mesh.
Intersepsi traffic proxy sidecar di Cloud Service Mesh
Cloud Service Mesh mendukung model proxy sidecar. Berdasarkan model ini, saat aplikasi mengirim traffic ke tujuannya, traffic akan dicegat dan diarahkan ke port di proxy sidecar di host tempat aplikasi berjalan. Proxy sidecar menentukan cara melakukan load balancing traffic, lalu mengirim traffic ke tujuannya.
Dengan Cloud Service Mesh dan API pemilihan rute layanan, intersepsi traffic dikelola secara otomatis.
Langkah selanjutnya
- Untuk mempelajari cara Cloud Service Mesh memberikan load balancing global untuk microservice internal Anda dengan proxy sidecar, lihat Load balancing Cloud Service Mesh.
- Untuk mempelajari Cloud Service Mesh lebih lanjut, lihat ringkasan Cloud Service Mesh.