Meskipun umumnya merupakan praktik terbaik untuk menggunakan sesedikit mungkin cluster, organisasi memilih untuk men-deploy beberapa cluster guna mencapai tujuan teknis dan bisnis mereka karena berbagai alasan. Setidaknya, sebagian besar organisasi memisahkan layanan non-produksi dari layanan produksi dengan menempatkannya di cluster yang berbeda. Dalam skenario yang lebih kompleks, organisasi dapat memilih beberapa cluster untuk memisahkan layanan di seluruh tingkat, lokalitas, tim, atau penyedia infrastruktur.
Sebagian besar alasan untuk mengadopsi beberapa cluster termasuk dalam tiga kategori persyaratan:
- Isolasi: memisahkan bidang kontrol dan bidang data layanan, terutama untuk meningkatkan keandalan atau memenuhi kebutuhan keamanan
- Lokasi: menempatkan layanan di lokasi tertentu untuk memenuhi kebutuhan ketersediaan, latensi, dan lokalitas
- Skala: terutama dalam konteks cluster Kubernetes, menskalakan layanan di luar batas praktis yang diberlakukan oleh satu cluster
Kita akan membahasnya secara lebih mendetail di bagian berikut.
Dalam banyak kasus, organisasi perlu menyeimbangkan beberapa persyaratan ini secara bersamaan. Saat Anda memikirkan organisasi Anda sendiri, ingatlah bahwa rekomendasi umum kami adalah menggunakan sesedikit mungkin cluster. Tentukan kebutuhan multi-cluster mana yang menjadi prioritas tertinggi bagi organisasi Anda dan tidak dapat dikompromikan, lalu buat kompromi yang sesuai untuk membuat arsitektur multi-cluster.
Jika Anda mendapati organisasi Anda mempertimbangkan model per layanan cluster atau mode per tim cluster, Anda mungkin perlu mempertimbangkan beban pengelolaan yang dikenakan pada operator sistem tersebut. Fleet dan Google Cloud komponen serta fitur yang mendukungnya berupaya membuat pengelolaan beberapa cluster semudah mungkin, tetapi selalu ada kompleksitas pengelolaan tambahan dengan lebih banyak cluster.
Isolasi
Dalam konteks ini, isolasi mengacu pada pemisahan bidang kontrol dan/atau bidang data, yang keduanya dapat dicapai dengan menjalankan beberapa cluster. Namun, bergantung pada penerapan, pemisahan ini kemungkinan juga mencakup isolasi bidang data. Isolasi biasanya muncul saat mempertimbangkan hal berikut:
Lingkungan
Sering kali, organisasi menjalankan layanan pengembangan, staging/pengujian, dan produksi di berbagai cluster terpisah, yang sering kali berjalan di berbagai jaringan dan project cloud. Pemisahan ini dilakukan untuk menghindari gangguan yang tidak disengaja pada layanan produksi dan mencegah akses ke data sensitif selama pengembangan atau pengujian.Pengelompokan tingkat workload
Sering kali organisasi yang memiliki banyak aplikasi kompleks mengelompokkan tingkat layanan mereka, memilih untuk menjalankan layanan yang lebih penting di cluster terpisah dari layanan yang kurang penting. Dalam lingkungan seperti itu, layanan yang lebih penting ini dan cluster-nya diperlakukan dengan pertimbangan khusus terkait akses, keamanan, upgrade, kebijakan, dan lainnya. Contoh penerapan tingkat ini adalah memisahkan layanan stateless dan stateful dengan menempatkannya di cluster terpisah.Mengurangi dampak dari kegagalan
Jika organisasi ingin membatasi dampak kesalahan operator, kegagalan cluster, atau kegagalan infrastruktur terkait, mereka dapat membagi layanan mereka ke beberapa cluster.Upgrade
Jika organisasi khawatir tentang potensi masalah saat melakukan upgrade di tempat (yaitu, kegagalan otomatisasi upgrade, ketidakstabilan aplikasi, atau kemampuan untuk melakukan rollback), mereka dapat memilih untuk men-deploy salinan layanan mereka di cluster baru. Upgrade dengan cara ini memerlukan perencanaan atau otomatisasi agar dapat dilakukan, dengan memastikan untuk menangani pengelolaan traffic dan replikasi status selama proses upgrade.Pemisahan keamanan/peraturan
Organisasi dapat memilih untuk mengisolasi layanan karena berbagai alasan, termasuk memisahkan beban kerja yang tunduk pada persyaratan peraturan dari beban kerja yang kurang sensitif, atau menjalankan layanan pihak ketiga (kurang tepercaya) di infrastruktur terpisah dari layanan pihak pertama (tepercaya) (cluster).Pemisahan tenant
Memisahkan tenant ke dalam beberapa cluster sering dilakukan karena berbagai alasan, termasuk isolasi keamanan, isolasi performa, akuntansi biaya, dan bahkan kepemilikan.
Lokasi
Latensi
Layanan tertentu memiliki persyaratan latensi yang harus dipenuhi dengan menempatkan workload tersebut secara fisik di lokasi (atau geografi) tertentu. Kebutuhan ini dapat terjadi jika layanan upstream atau pengguna akhir sensitif terhadap latensi, tetapi juga dapat dengan mudah terjadi jika beban kerja itu sendiri sensitif terhadap latensi layanan downstream.Ketersediaan
Menjalankan layanan yang sama di beberapa zona ketersediaan dalam satu penyedia cloud (atau di beberapa penyedia) dapat memberikan ketersediaan keseluruhan yang lebih tinggi.Yurisdiksi
Persyaratan pemrosesan yurisdiksi dan residensi data lainnya dapat mewajibkan komputasi dan penyimpanan berada dalam region tertentu, sehingga mengharuskan infrastruktur di-deploy di beberapa pusat data atau penyedia cloud.Gravitasi data
Kumpulan data yang besar, atau bahkan instance database tertentu, dapat sulit, tidak mungkin, atau bahkan tidak disarankan untuk digabungkan dalam satu penyedia atau region cloud. Bergantung pada persyaratan pemrosesan dan penayangan, aplikasi mungkin perlu di-deploy di dekat datanya.Infrastruktur/layanan lama
Sama seperti data yang sulit dipindahkan ke cloud, beberapa infrastruktur lama juga sulit dipindahkan. Meskipun layanan lama ini tidak dapat dipindahkan, men-deploy cluster tambahan untuk pengembangan layanan baru memungkinkan organisasi meningkatkan kecepatan pengembangan.Pilihan developer
Organisasi sering kali mendapatkan manfaat dari kemampuan untuk memberikan pilihan developer dalam layanan yang dikelola cloud yang mereka gunakan. Umumnya, pilihan memungkinkan tim bergerak lebih cepat dengan alat yang paling sesuai dengan kebutuhan mereka, tetapi mereka harus mengelola resource tambahan yang dialokasikan di setiap penyedia.Kebutuhan komputasi lokal/edge
Terakhir, seiring makin banyaknya organisasi yang ingin mengadopsi praktik modernisasi aplikasi di lingkungan kerja yang lebih tradisional, seperti gudang, lantai pabrik, toko retail, dan sebagainya, hal ini memerlukan pengelolaan lebih banyak workload pada lebih banyak infrastruktur.
Skala
Karena GKE dapat menskalakan cluster hingga lebih dari 5.000 node, batas ini jarang menjadi alasan untuk mengoperasikan beberapa cluster. Sebelum cluster mencapai batas skalabilitas, organisasi sering kali memutuskan untuk mendistribusikan layanan di beberapa cluster. Untuk cluster yang mencapai batas skalabilitas, menjalankan aplikasi di beberapa cluster dapat mengurangi beberapa tantangan, tetapi dengan kompleksitas tambahan dalam mengelola beberapa cluster.