Halaman ini menyediakan ringkasan tentang cara kerja Service multi-cluster GKE (MCS). Untuk mempelajari cara menggunakan MCS, lihat Mengonfigurasi Service multi-cluster.
Ringkasan MCS
Dengan objek Service Kubernetes yang sudah dikenal, Anda dapat menemukan dan mengakses Service dalam cakupan satu cluster Kubernetes. Namun, terkadang Anda mungkin ingin membagi aplikasi menjadi beberapa cluster untuk memenuhi persyaratan pengelolaan status, privasi, skalabilitas, ketersediaan, dan kedaulatan data. Dengan MCS, Anda dapat membangun aplikasi Kubernetes yang mencakup beberapa cluster.
MCS adalah mekanisme penemuan dan pemanggilan layanan lintas cluster untuk Google Kubernetes Engine (GKE) yang memanfaatkan objek Service yang ada. Service yang diaktifkan dengan fitur ini dapat ditemukan dan diakses di seluruh cluster dengan IP virtual, yang cocok dengan perilaku ClusterIP Service yang dapat diakses dalam cluster. Sama seperti Service yang sudah ada, MCS kompatibel dengan API terbuka dan berbasis komunitas, sehingga memastikan workload Anda tetap portabel.
MCS adalah fitur GKE. MCS mengonfigurasi zona dan kumpulan data Cloud DNS untuk setiap Service yang diekspor di cluster fleet Anda. Dengan fleet, Anda dapat mengelompokkan dan menormalisasi cluster GKE secara logis, sehingga mempermudah administrasi infrastruktur dan memungkinkan penggunaan fitur multi-cluster seperti MCS. Anda dapat mempelajari lebih lanjut manfaat fleet dan cara membuatnya di dokumentasi pengelolaan fleet.
Apa pun jenisnya, apa pun jenisnya selalu memiliki satu data Cloud DNS, dan layanan jenis Headless yang diekspor memiliki data untuk setiap Pod backend dengan nama host, termasuk Pod di StatefulSets. Penggunaan Cloud DNS akan dikenai biaya tambahan. Anda akan ditagih sesuai dengan harga Cloud DNS.
Untuk mengekspor Service dengan MCS, buat resource kustom ServiceExport menggunakan namespace dan nama yang sama dengan Service. MCS akan otomatis mengimpor Service ke setiap cluster dalam fleet. Saat MCS mengimpor Service, MCS akan membuat:
- Resource kustom ServiceImport menggunakan namespace dan nama yang sama dengan Service.
- Objek Endpoint menggunakan namespace yang sama dengan Service dan nama acak.
Manfaat menggunakan MCS
Dengan menggunakan MCS, Anda akan mendapatkan manfaat berikut:
- Ketersediaan tinggi: Menjalankan Service yang sama di seluruh cluster di beberapa region akan memberi Anda fault tolerance yang lebih baik. Jika Service dalam cluster tidak tersedia, permintaan dapat gagal dan disalurkan dari cluster lain. Dengan MCS, Anda dapat mengelola komunikasi antara Service di berbagai cluster untuk meningkatkan ketersediaan aplikasi dalam container Anda.
- Service stateful dan stateless: Service stateful dan stateless memiliki dependensi dan kompleksitas operasional yang berbeda serta memiliki berbagai kompensasi secara operasional. Biasanya, tidak adanya pengelolaan status akan mempermudah penskalaan, upgrade, dan migrasi workload dengan ketersediaan yang lebih tinggi. MCS memungkinkan Anda memisahkan cluster untuk workload stateful dan stateless serta membuatnya independen, terisolasi, dan lebih mudah dikelola.
- Service Bersama: Membuat cluster Kubernetes terpisah untuk mendapatkan ketersediaan yang lebih tinggi, pengelolaan Service stateful dan stateless yang lebih baik, serta kepatuhan yang lebih mudah terhadap persyaratan kedaulatan data adalah hal yang umum. Namun, banyak Layanan seperti pemantauan dengan Prometheus atau menggunakan pengelolaan secret dengan Vault sering digunakan oleh semua klaster. Karena setiap cluster memerlukan replika Service lokalnya sendiri, MCS mempermudah penyiapan Service bersama yang umum dalam cluster terpisah yang digunakan oleh semua cluster fungsional.
- Migrasi: Memodernisasi aplikasi yang ada ke dalam arsitektur berbasis microservice dalam container sering kali mengharuskan Anda men-deploy Service di beberapa cluster Kubernetes. MCS memberi Anda mekanisme untuk membantu menjembatani komunikasi antara Service tersebut, sehingga memudahkan migrasi aplikasi Anda. Hal ini sangat membantu karena Anda dapat men-deploy Service yang sama ke dua cluster berbeda dan traffic dapat beralih dari satu cluster atau aplikasi ke cluster lain.
Langkah berikutnya
- Pelajari Multi Cluster Ingress lebih lanjut, yang menyediakan Service untuk rute traffic utara-selatan dan timur-barat.
- Pelajari Cloud Service Mesh lebih lanjut, yang menyediakan Anda dengan kontrol yang lebih detail atas {i>routing<i} dan pembentukan lalu lintas.