Traffic masuk untuk mesh Anda
Mesh layanan memfasilitasi komunikasi antarlayanan yang berjalan di mesh. Bagaimana cara memasukkan traffic ke mesh Anda? Anda dapat menggunakan gateway untuk mengarahkan traffic dari luar mesh ke mesh melalui titik entri.
Dokumen ini menjelaskan cara menggunakan Cloud Load Balancing sebagai gateway untuk mengirimkan traffic ke mesh Anda, yang mencakup hal berikut:
- Pertimbangan tingkat tinggi untuk gateway Anda.
- Ringkasan opsi saat memilih gateway untuk mesh Anda.
- Rekomendasi arsitektur yang dapat diterapkan pada topologi gateway.
Dalam dokumen ini, gateway mengacu pada solusi atau pola untuk menangani traffic yang ditujukan ke layanan di mesh Anda. Gateway Ingress Istio adalah salah satu penerapan pola ini. Dalam dokumen ini, gateway adalah istilah umum yang mengacu pada pola umum, bukan penerapan Istio.
Dokumen ini berlaku untuk Cloud Service Mesh API. Setelah langkah-langkah penyiapan persiapan, lihat yang berisi petunjuk untuk men-deploy dengan gateway masuk.
Saat Anda mendesain mesh layanan, pertimbangkan traffic yang berasal dari sumber berikut:
- Traffic yang berasal dari dalam mesh Anda
- Traffic yang berasal dari luar mesh Anda
Traffic yang berasal dari dalam mesh Anda berpindah di bidang data mesh layanan untuk mencapai backend atau endpoint yang terkait dengan layanan tujuan. Namun, traffic yang berasal dari luar mesh Anda harus menjangkau bidang data mesh layanan terlebih dahulu.
Pada contoh traffic berikut yang berasal dari dalam mesh Anda, Cloud Service Mesh mengonfigurasi proxy file bantuan Anda. Proxy file bantuan ini membentuk bidang data dari mesh layanan Anda. Jika Layanan A ingin berkomunikasi dengan Layanan B, hal berikut akan terjadi:
- Layanan A membuat permintaan ke Layanan B dengan nama.
- Permintaan ini ditangkap dan dialihkan ke proxy file bantuan Layanan A.
- Selanjutnya, proxy file bantuan mengirimkan permintaan ke endpoint yang terkait dengan Layanan B.
Pada contoh berikut, traffic berasal dari luar mesh layanan Anda dan
tidak berjalan di sepanjang bidang data mesh layanan.
Dalam contoh ini, klien berada di luar mesh layanan Anda. Karena tidak berpartisipasi langsung dalam mesh, klien tidak mengetahui endpoint mana yang termasuk dalam layanan di dalam mesh. Dengan kata lain, karena klien tidak menggunakan proxy yang dikonfigurasi Cloud Service Mesh untuk mengirim permintaan keluar, klien tidak mengetahui pasangan alamat IP mana yang akan digunakan saat mengirim traffic ke Layanan A atau Layanan B. Tanpa informasi tersebut, klien tidak dapat menjangkau layanan di dalam mesh Anda.
Pertimbangan untuk gateway Anda
Bagian ini memberikan ringkasan masalah yang perlu dipertimbangkan saat Anda memilih gateway, termasuk hal berikut:
- Bagaimana klien dapat mencapai {i>gateway<i} saya?
- Kebijakan apa yang ingin saya terapkan pada traffic yang mencapai gateway saya?
- Bagaimana cara gateway mendistribusikan traffic ke layanan di mesh saya?
Memungkinkan klien menjangkau gateway ke mesh Anda
Klien, baik di internet publik, di lingkungan lokal Anda, maupun di Google Cloud, memerlukan cara untuk menjangkau layanan dalam mesh Anda. Menjangkau layanan di mesh Anda biasanya dilakukan dengan menggunakan alamat IP dan port yang dapat dirutekan secara publik atau pribadi yang ditetapkan ke gateway. Klien di luar mesh Anda menggunakan alamat IP dan port ini untuk mengirim permintaan ke layanan di mesh Anda melalui gateway Anda.
Cloud Load Balancing menyediakan berbagai opsi load balancing yang dapat Anda gunakan sebagai gateway ke mesh Anda. Pertanyaan utama yang harus diajukan saat Anda memilih load balancer Google Cloud untuk digunakan sebagai gateway adalah sebagai berikut:
- Apakah klien saya berada di internet publik, di lingkungan lokal, atau merupakan bagian dari jaringan Virtual Private Cloud (VPC) saya?
- Protokol komunikasi apa yang digunakan klien saya?
Untuk ringkasan mengenai opsi Cloud Load Balancing, bergantung pada lokasi klien dan protokol komunikasi, lihat bagian Memilih gateway untuk mesh Anda.
Menangani traffic di gateway
Karena gateway Anda berada di tepi mesh—di antara klien yang berada di luar mesh dan layanan yang ada di dalam mesh—gateway adalah tempat alami untuk menerapkan kebijakan saat traffic memasuki mesh Anda. Kebijakan ini mencakup:
- Pengelolaan traffic—misalnya, pemilihan rute, pengalihan, dan transformasi permintaan
- Keamanan—misalnya, penghentian TLS dan perlindungan denial-of-service (DDoS) Google Cloud Armor
- Penyimpanan cache Cloud CDN
Bagian Choose a gateway for your mesh menyoroti kebijakan yang relevan di bagian edge mesh Anda.
Mengirim traffic dari gateway ke layanan di mesh Anda
Setelah menerapkan kebijakan ke traffic masuk, gateway akan memutuskan tujuan pengiriman traffic. Anda harus menggunakan kebijakan pengelolaan traffic dan load balancing untuk mengonfigurasinya. Misalnya, gateway dapat memeriksa header permintaan untuk mengidentifikasi layanan mesh yang akan menerima traffic. Setelah gateway mengidentifikasi layanan, gateway tersebut akan mendistribusikan traffic ke backend tertentu sesuai dengan kebijakan load balancing.
Bagian Choose a gateway for your mesh menguraikan backend yang menjadi tempat gateway dapat mengirim traffic.
Pilih gateway untuk mesh Anda
Google Cloud menawarkan berbagai load balancer yang dapat berfungsi sebagai gateway ke mesh Anda. Bagian ini membahas pemilihan gateway, yang membandingkan opsi berikut dengan dimensi yang relevan dengan pola gateway:
- Load Balancer Aplikasi Internal
- Load Balancer Aplikasi Eksternal
- Load Balancer Jaringan passthrough internal
- Load Balancer Jaringan passthrough eksternal
- Load Balancer Jaringan proxy eksternal
Di bagian ini, kami merujuk ke gateway first-level dan first-level. Istilah tersebut digunakan untuk menjelaskan penggunaan satu atau dua gateway untuk menangani traffic masuk ke mesh Anda.
Anda mungkin hanya memerlukan satu level, yaitu satu load balancer yang berfungsi sebagai gateway ke mesh. Namun, terkadang masuk akal untuk memiliki beberapa {i>gateway<i}. Dalam konfigurasi ini, satu gateway menangani traffic yang masuk ke Google Cloud, dan gateway tingkat kedua yang terpisah menangani traffic saat memasuki mesh layanan.
Misalnya, Anda dapat menerapkan kebijakan keamanan Google Cloud Armor untuk traffic yang memasuki Google Cloud dan kebijakan pengelolaan traffic lanjutan untuk traffic yang masuk ke mesh. Pola penggunaan gateway kedua yang dikonfigurasi Mesh Layanan Cloud dibahas di bagian Menangani traffic masuk menggunakan gateway level kedua di tepi mesh.
Tabel berikut membandingkan kemampuan yang tersedia, bergantung pada opsi gateway yang Anda pilih.
Gateway | Lokasi klien | Protokol | Kebijakan | Backend/endpoint |
---|---|---|---|---|
Load Balancer Aplikasi internal | Klien berbasis Google Cloud di region yang sama dengan load balancer. Klien lokal yang permintaannya masuk di region Google Cloud yang sama dengan load balancer—misalnya, menggunakan Cloud VPN atau Cloud Interconnect. |
HTTP/1.1 HTTP/2 HTTPS |
Pengelolaan traffic lanjutan Penghentian TLS menggunakan sertifikat yang dikelola sendiri |
Backend di region Google Cloud yang sama dengan load balancer, yang berjalan di:
|
Load Balancer Aplikasi Eksternal | Klien di internet publik | HTTP/1.1 HTTP/2 HTTPS |
Pengelolaan traffic Cloud CDN (termasuk backend bucket Cloud Storage) Penghentian TLS menggunakan sertifikat yang dikelola sendiri atau Google Kebijakan SSL Google Cloud Armor untuk pencegahan DDoS dan serangan web Dukungan Identity-Aware Proxy (IAP) untuk autentikasi pengguna |
Backend di region Google Cloud mana pun, berjalan di:
|
Load Balancer Jaringan passthrough internal | Klien berbasis Google Cloud di region mana pun; akses ini memerlukan akses global jika klien berada di region yang berbeda dari load balancer. Klien lokal yang permintaannya tiba di region Google Cloud mana pun—misalnya, menggunakan Cloud VPN atau Cloud Interconnect. |
TCP | Backend di region Google Cloud yang sama dengan load balancer, yang berjalan pada VM di Compute Engine. | |
Load Balancer Jaringan passthrough eksternal | Klien di internet publik | TCP atau UDP | Backend di region Google Cloud yang sama dengan load balancer, yang berjalan pada VM di Compute Engine. | |
Load Balancer Jaringan proxy eksternal | Klien di internet publik | SSL atau TCP | Penghentian TLS menggunakan sertifikat yang dikelola sendiri atau Google (khusus proxy SSL) Kebijakan SSL (hanya proxy SSL) |
Backend di region Google Cloud mana pun, berjalan di:
|
Proxy edge (pada instance VM atau container) yang dikonfigurasi oleh Cloud Service Mesh |
Klien harus berada di lokasi yang memberlakukan salah satu hal berikut:
|
HTTP/1.1 HTTP/2 |
Pengelolaan
traffic lanjutan (termasuk dukungan regex ) |
Backend di region Google Cloud mana pun, berjalan di:
|
Untuk mengetahui perbandingan fitur demi fitur yang mendetail, lihat halaman Fitur load balancer. Untuk ringkasan mendetail tentang fitur Cloud Service Mesh, lihat halaman fitur Cloud Service Mesh.
Men-deploy dan mengonfigurasi gateway
Pertimbangan akhir dalam memilih gateway adalah pengalaman developer dan alat yang ingin Anda gunakan. Google Cloud menawarkan beberapa pendekatan untuk membuat dan mengelola gateway.
Google Cloud CLI dan Compute Engine API
Untuk mengonfigurasi produk load balancing terkelola dan Cloud Service Mesh dari Google Cloud, Anda dapat menggunakan Google Cloud CLI dan Compute Engine API. gcloud CLI dan API menyediakan mekanisme untuk men-deploy dan mengonfigurasi resource Google Cloud Anda secara imperatif. Untuk mengotomatiskan tugas berulang, Anda dapat membuat skrip.
Konsol Google Cloud
Untuk mengonfigurasi Cloud Service Mesh dan load balancer terkelola Google Cloud, Anda dapat menggunakan Konsol Google Cloud.
Untuk mengonfigurasi pola gateway, kemungkinan Anda memerlukan halaman Cloud Service Mesh dan halaman Load balancing.
GKE dan Multi Cluster Ingress
Pengontrol jaringan GKE dan GKE Enterprise juga mendukung deployment Cloud Load Balancing untuk integrasi bawaan dengan jaringan container. Library ini menyediakan antarmuka deklaratif bergaya Kubernetes untuk men-deploy dan mengonfigurasi gateway. Pengontrol GKE Ingress dan Multi-cluster Ingress mengelola load balancer internal dan eksternal untuk mengirim traffic ke satu cluster atau di beberapa cluster GKE. Resource Ingress juga dapat dikonfigurasi untuk mengarah ke layanan yang dikonfigurasi Cloud Service Mesh yang di-deploy di cluster GKE.
Pola arsitektur gateway
Bagian ini menjelaskan pola tingkat tinggi dan menyediakan diagram arsitektur untuk gateway Anda.
Pola yang paling umum melibatkan penggunaan load balancer yang dikelola Google Cloud sebagai gateway:
Klien mengirim traffic ke load balancer yang dikelola Google Cloud dan berperan sebagai gateway Anda.
- Gateway menerapkan kebijakan.
Gateway akan mengirimkan traffic ke layanan di mesh Anda.
Pola yang lebih canggih melibatkan {i>gateway<i} di dua tingkat. Gateway berfungsi sebagai berikut:
Klien mengirim traffic ke load balancer yang dikelola Google Cloud dan berfungsi sebagai gateway level pertama Anda.
- Gateway menerapkan kebijakan.
Gateway mengirimkan traffic ke edge proxy (atau kumpulan proxy edge) yang dikonfigurasi oleh Cloud Service Mesh. Proxy edge ini berfungsi sebagai gateway level kedua. Level ini melakukan hal berikut:
Memberikan pemisahan fokus yang jelas, sehingga, misalnya, satu tim bertanggung jawab atas traffic masuk yang memasuki Google Cloud, sementara tim lain bertanggung jawab atas traffic masuk yang memasuki mesh tim tersebut.
Memungkinkan Anda menerapkan kebijakan yang mungkin tidak didukung di load balancer yang dikelola Google Cloud.
Gateway tingkat kedua mengirimkan traffic ke layanan di mesh Anda.
Pola masuk berakhir setelah traffic mencapai layanan in-mesh. Baik kasus umum maupun pola lanjutan dijelaskan di bagian berikut.
Mengaktifkan traffic masuk dari internet
Jika klien Anda berada di luar Google Cloud dan perlu menjangkau Google Cloud melalui internet publik, Anda dapat menggunakan salah satu load balancer berikut sebagai gateway:
- Load Balancer Aplikasi Eksternal
- Load Balancer Jaringan passthrough eksternal
- Load Balancer Jaringan proxy eksternal
Dalam pola ini, load balancer yang dikelola Google Cloud berfungsi sebagai gateway Anda. Gateway akan menangani traffic masuk sebelum meneruskannya ke layanan di mesh Anda.
Misalnya, Anda dapat memilih Load Balancer Aplikasi eksternal sebagai gateway untuk menggunakan hal berikut:
- Alamat IP Anycast global yang dapat dirutekan secara publik, yang meminimalkan latensi dan biaya traversal jaringan.
- Google Cloud Armor dan penghentian TLS untuk mengamankan traffic ke mesh Anda.
- Cloud CDN untuk menayangkan konten web dan video.
- Kemampuan pengelolaan traffic seperti pemilihan rute berbasis host dan berbasis jalur.
Untuk mengetahui informasi selengkapnya guna membantu Anda menentukan gateway yang sesuai, lihat bagian Memilih gateway untuk mesh.
Mengaktifkan traffic masuk dari klien di VPC dan jaringan lokal yang terhubung
Jika klien Anda berada di dalam jaringan VPC Anda, atau jika klien tersebut berada di infrastruktur lokal dan dapat menjangkau layanan Google Cloud dengan menggunakan metode konektivitas pribadi (seperti Cloud VPN atau Cloud Interconnect), Anda dapat menggunakan salah satu load balancer berikut sebagai gateway Anda:
Dalam pola ini, load balancer yang dikelola Google Cloud berfungsi sebagai gateway Anda. Gateway akan menangani traffic masuk sebelum meneruskannya ke layanan di mesh Anda.
Misalnya, Anda dapat memilih Load Balancer Aplikasi internal sebagai gateway agar Anda dapat menggunakan fitur-fitur ini:
- Alamat IP yang dapat diberi alamat pribadi
- Penghentian TLS untuk mengamankan mesh Anda
- Kemampuan pengelolaan traffic lanjutan seperti pemisahan traffic berdasarkan berat
- NEG sebagai backend
Untuk mengetahui informasi selengkapnya guna membantu Anda menentukan gateway yang sesuai, lihat bagian Memilih gateway untuk mesh.
Tangani traffic masuk menggunakan gateway level kedua di tepi mesh Anda
Bergantung pada kebutuhan, Anda dapat mempertimbangkan pola lanjutan yang menambahkan gateway tambahan.
Gateway ini adalah edge proxy (atau kumpulan proxy) yang dikonfigurasi Cloud Service Mesh yang berada di belakang load balancer yang dikelola Google Cloud. Anda dapat menghosting gateway level kedua ini di project dengan menggunakan sekumpulan VM Compute Engine (grup instance terkelola) atau layanan GKE.
Meskipun pola ini lebih kompleks, pola ini memberikan manfaat tambahan:
Load balancer yang dikelola Google Cloud menerapkan serangkaian kebijakan awal. Misalnya, perlindungan Google Cloud Armor jika Anda menggunakan Load Balancer Aplikasi eksternal.
Proxy edge yang dikonfigurasi Cloud Service Mesh menerapkan kumpulan kebijakan kedua yang mungkin tidak tersedia di load balancer yang dikelola Google Cloud. Kebijakan ini mencakup pengelolaan traffic lanjutan yang menggunakan ekspresi reguler yang diterapkan ke header HTTP dan pemisahan traffic berbasis bobot.
Pola ini dapat disiapkan untuk mencerminkan struktur organisasi Anda. Contoh:
Satu tim mungkin bertanggung jawab menangani traffic masuk ke Google Cloud, sementara tim lain bertanggung jawab untuk menangani traffic masuk ke mesh-nya.
Jika beberapa tim menawarkan layanan di satu VPC Bersama, dan setiap tim memiliki project layanannya sendiri, tim dapat menggunakan pola ini untuk mengelola dan menerapkan kebijakan dalam mesh mereka sendiri. Setiap tim dapat mengekspos gateway yang dikonfigurasi Cloud Service Mesh yang dapat dijangkau pada satu alamat IP dan pasangan port. Kemudian, tim dapat secara mandiri menentukan dan mengelola kebijakan yang diterapkan pada traffic masuk ke mesh tim.
Pola ini dapat diterapkan menggunakan load balancer yang dikelola Google Cloud, selama load balancer dapat mengirimkan traffic ke backend yang menghosting gateway yang dikonfigurasi Cloud Service Mesh.
Menggunakan API pemilihan rute layanan untuk traffic masuk
API pemilihan rute layanan menyediakan resource Gateway
untuk mengonfigurasi pengelolaan traffic dan keamanan bagi proxy Envoy yang bertindak sebagai gateway masuk, sehingga klien eksternal dapat terhubung ke mesh layanan (utara-selatan).
Untuk mengetahui informasi selengkapnya, baca ringkasan pemilihan rute layanan dan Menyiapkan gateway masuk.
Langkah selanjutnya
- Untuk menyiapkan gateway masuk, lihat Penyiapan Cloud Service Mesh untuk gateway masuk,
- Untuk mengelompokkan VM dan container yang menjalankan kode Anda sebagai endpoint layanan, baca artikel Penemuan layanan Cloud Service Mesh.
- Untuk menggunakan Cloud Service Mesh dengan VPC Bersama, lihat Menyiapkan mesh layanan multi-cluster.
- Untuk mempelajari Cloud Service Mesh lebih lanjut, lihat ringkasan Cloud Service Mesh.