Tentang Gateway multi-cluster

Dokumen ini menjelaskan cara kerja Gateway multi-cluster dalam Google Kubernetes Engine (GKE). Gateway multi-cluster adalah solusi jaringan canggih yang memungkinkan Anda mengelola traffic untuk layanan yang di-deploy di beberapa cluster GKE.

Dokumen ini ditujukan untuk Cloud Architect dan Networking Specialist yang mendesain dan merancang jaringan organisasi mereka. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE Enterprise umum.

Ringkasan

Gateway multi-cluster dikonfigurasi menggunakan resource Gateway API Kubernetes. Pengontrol Gateway GKE memantau resource ini (Gateway, HTTPRoute, dan TLSRoute) serta otomatis menyediakan dan memelihara infrastruktur load balancing Google Cloud yang diperlukan. Infrastruktur ini menyediakan pengelolaan traffic lanjutan untuk layanan yang di-deploy di beberapa cluster GKE dalam sebuah fleet. Gateway multi-cluster menggunakan infrastruktur load balancing Google Clouduntuk menyediakan satu titik entri terpadu untuk aplikasi Anda. Pendekatan ini memiliki manfaat sebagai berikut:

  • Menyederhanakan pengelolaan
  • Meningkatkan keandalan
  • Mengaktifkan kemampuan pengelolaan traffic lanjutan

Kemampuan pengelolaan traffic

Gateway multi-cluster memberi Anda kemampuan lanjutan untuk mengelola traffic di beberapa cluster. Anda dapat menerapkan strategi pemilihan rute yang canggih, seperti peluncuran bertahap dan strategi blue-green, untuk men-deploy perubahan dengan aman. Untuk kontrol yang mendetail, Anda dapat menggunakan pencocokan berbasis header untuk menguji perubahan dengan sebagian kecil traffic, atau membagi traffic berdasarkan bobot untuk mengalihkan permintaan secara bertahap di antara backend cluster yang berbeda.

Gateway multi-cluster juga memungkinkan Anda menduplikasi traffic, yang mengirimkan salinan permintaan pengguna aktif ke layanan baru untuk menguji performa tanpa memengaruhi pengguna. Untuk memastikan keandalan dan mencegah kelebihan beban, Gateway multi-cluster mendukung failover berbasis kondisi dan load balancing berbasis kapasitas, yang mendistribusikan permintaan berdasarkan kapasitas yang ditentukan dari layanan Anda.

Untuk traffic TLS yang memerlukan enkripsi end-to-end tanpa menghentikan TLS di load balancer, Gateway multi-cluster mendukung pemilihan rute berbasis SNI dengan TLSRoute.

Cara kerja Gateway multi-cluster

Semua cluster GKE yang berpartisipasi dalam penyiapan Gateway multi-cluster harus didaftarkan ke fleet. Fleet menyediakan pengelompokan cluster secara logis, yang memungkinkan pengelolaan dan komunikasi yang konsisten di seluruh cluster. Satu cluster GKE dalam fleet ditetapkan sebagai cluster konfigurasi.

Cluster konfigurasi bertindak sebagai titik kontrol terpusat untuk konfigurasi Gateway multi-cluster Anda. Anda men-deploy semua resource Gateway API multi-cluster, seperti Gateway, HTTPRoute, dan TLSRoute, hanya ke cluster yang ditetapkan ini. Gateway GKE controller memantau server Kubernetes API dari cluster konfigurasi untuk resource ini.

Untuk memilih cluster konfigurasi, pertimbangkan cluster regional atau cluster GKE lain yang berketersediaan tinggi. Hal ini membantu memastikan bahwa update pada resource Gateway API Anda dapat terus direkonsiliasi oleh pengontrol.

Pengontrol Gateway multi-cluster menggunakan Service multi-cluster (MCS) untuk menemukan dan mengakses Service Kubernetes di beberapa cluster GKE dalam satu fleet. MCS adalah fitur GKE yang memungkinkan penemuan layanan dan konektivitas antara Service yang berjalan di berbagai cluster GKE dalam sebuah fleet.

MCG menggunakan MCS untuk menemukan Service yang tersedia di cluster mana untuk merutekan traffic eksternal ke Service. Pengontrol MCG menggunakan resource MCS API untuk mengelompokkan Pod ke dalam satu Service yang dapat diakses dan mencakup beberapa cluster.

Berdasarkan konfigurasi yang Anda tentukan di resource Gateway API, pengontrol Gateway GKE menyediakan Load Balancer Aplikasi eksternal atau internal (untuk HTTPRoute) atau Load Balancer Jaringan proxy (untuk TLSRoute). Load balancer ini berfungsi sebagai frontend untuk aplikasi Anda, dan mendistribusikan traffic langsung ke Pod yang responsif di seluruh fleet, terlepas dari lokasinya.

Langkah-langkah tingkat tinggi berikut menjelaskan proses untuk men-deploy Gateway multi-cluster:

  1. Menentukan Gateway: dalam penyiapan Gateway multi-cluster, Anda membuat resource Gateway yang menentukan titik entri untuk traffic Anda di cluster konfigurasi. Resource Gateway menentukan GatewayClass, yang merupakan template untuk jenis load balancer tertentu, seperti Load Balancer Aplikasi eksternal Global atau Load Balancer Aplikasi internal Regional. Di GKE, GatewayClasses berikut men-deploy Gateway multi-cluster:

    • gke-l7-global-external-managed-mc: menyediakan Load Balancer Aplikasi eksternal global.
    • gke-l7-regional-external-managed-mc: menyediakan Load Balancer Aplikasi eksternal regional atau Load Balancer Jaringan proxy eksternal regional.
    • gke-l7-cross-regional-internal-managed-mc: menyediakan Load Balancer Aplikasi internal lintas region atau Load Balancer Jaringan proxy internal lintas region.
    • gke-l7-rilb-mc: menyediakan Load Balancer Aplikasi internal regional atau Load Balancer Jaringan proxy internal regional.
    • gke-l7-gxlb-mc: menyediakan Load Balancer Aplikasi klasik.

    Gateway juga menentukan cara load balancer memproses traffic masuk dengan menentukan pemroses jaringan (port dan protokol) yang akan diekspos. Untuk mengetahui informasi selengkapnya tentang Gateway Class yang didukung GKE, lihat Layanan Multi-cluster.

  2. Melampirkan resource rute ke Gateway: Resource rute menentukan cara load balancer merutekan traffic masuk ke layanan backend tertentu:

    • HTTPRoute: menentukan cara load balancer merutekan traffic HTTP dan HTTPS berdasarkan nama host, jalur, header, dan parameter kueri. Mendukung pemisahan traffic, pengalihan permintaan, dan pencerminan traffic.
    • TLSRoute: menentukan cara load balancer merutekan traffic TLS terenkripsi berdasarkan nama host SNI menggunakan TLS passthrough (didukung di GatewayClass gke-l7-regional-external-managed-mc, gke-l7-rilb-mc, dan gke-l7-cross-regional-internal-managed-mc). Load balancer meneruskan traffic langsung ke ServiceImport backend tanpa mendekripsi payload di Gateway.
  3. Membuat load balancer: saat Anda men-deploy resource Gateway dan Route, pengontrol Gateway GKE akan menafsirkan objek API ini dan, pada gilirannya, mengonfigurasi infrastruktur load balancing Google Cloud yang diperlukan secara dinamis. Load balancer kemudian mengarahkan traffic ke Pod yang benar, terlepas dari cluster tempat Pod berada. Proses ini menyediakan cara yang sangat efisien dan skalabel untuk merutekan traffic.

Alur traffic

Diagram berikut mengilustrasikan cara kerja Gateway multi-cluster sebagai load balancer terpusat untuk aplikasi yang berjalan di dua cluster GKE di region yang berbeda:

Arsitektur Gateway multi-cluster di GKE.
Gambar: Arsitektur Gateway multi-cluster

Perilaku load balancer dikonfigurasi berdasarkan aturan yang ditentukan dalam resource HTTPRoute atau TLSRoute Anda. Saat traffic pengguna tiba di alamat IP load balancer Google Cloud yang disediakan (sebagaimana ditentukan oleh resource Gateway Anda), load balancer, yang merupakan proxy yang dikelola Google, akan merutekan traffic. Proxy ini (baik proxy Google Front End maupun proxy regional) mengarahkan traffic ke endpoint layanan backend yang sesuai dalam cluster GKE yang benar, berdasarkan kriteria berikut:

  • Health check
  • Aturan pemisahan traffic
  • Kapasitas

Traffic mengalir langsung ke Pod yang optimal di cluster yang dipilih.

Langkah berikutnya