Merencanakan resource fleet

Seperti yang Anda pelajari di Ringkasan pengelolaan fleet, fleet adalah mekanisme pengelompokan untuk mengelola, mengonfigurasi, dan mengamankan cluster Kubernetes dalam skala besar. Fleet adalah alat canggih yang menghilangkan kebutuhan untuk melakukan operasi berulang di lingkungan multi-cluster dan memberikan konsistensi serta observabilitas komprehensif atas grup cluster yang besar. Sejumlah fitur GKE hanya tersedia melalui fleet.

Strategi pengelompokan yang Anda gunakan untuk membuat fleet dapat bervariasi bergantung pada kebutuhan teknis dan bisnis organisasi Anda. Misalnya, satu organisasi dapat mengelompokkan cluster berdasarkan jenis aplikasi yang berjalan di dalamnya, sementara organisasi lain dapat mengelompokkannya berdasarkan region, lingkungan, atau faktor relevan lainnya. Jika semua hal lainnya sama, akan lebih mudah jika Anda memiliki fleet sesedikit mungkin dalam organisasi Anda.

Panduan ini ditujukan untuk arsitek Cloud yang ingin mulai menggunakan fleet di organisasi mereka. Panduan ini memberikan beberapa panduan praktis tentang cara mengatur cluster Anda ke dalam fleet, termasuk:

  • Saat Anda ingin membuat cluster yang benar-benar baru.
  • Saat Anda ingin membuat fleet dengan cluster yang ada.

Pola yang dijelaskan di sini berfungsi untuk banyak organisasi, tetapi bukan satu-satunya cara untuk merencanakan fleet. Fleet bersifat fleksibel dan Anda dapat memutuskan untuk menggunakan pola pengelompokan yang berbeda untuk cluster Anda.

Sebelum membaca halaman ini, pastikan Anda memahami konsep berikut:

Batasan fleet dan resource

Batasan umum berikut berlaku saat membuat fleet:

  • Project tertentu hanya dapat memiliki satu fleet (atau tidak ada fleet) yang terkait dengannya, meskipun fleet tersebut dapat menyertakan cluster dari beberapa project. Google Cloud Project yang terkait dengan fleet dikenal sebagai project host fleet.
  • Cluster hanya dapat menjadi anggota satu fleet pada waktu tertentu.
  • Semua cluster dalam project tertentu harus berada dalam fleet yang sama, atau tidak berada dalam fleet. Jika project sudah berisi anggota fleet, Anda tidak dapat mendaftarkan cluster dari project tersebut ke fleet lain.
  • Batas default untuk jumlah cluster dalam fleet adalah 250, meskipun Anda dapat meminta batas yang lebih tinggi jika diperlukan.

Menempatkan beberapa cluster dalam project yang sama dapat memudahkan karena berbagai alasan. Namun, pertimbangkan batas berikut saat merencanakan cluster mana yang akan digabungkan dalam project:

Prinsip umum

Berikut adalah pertanyaan umum yang harus Anda ajukan saat memutuskan apakah akan mengelompokkan cluster bersama-sama dalam fleet. Kita akan melihat bagaimana hal ini berlaku secara lebih mendetail di bagian berikut.

  • Apakah resource tersebut terkait satu sama lain?
    • Resource yang memiliki komunikasi lintas layanan dalam jumlah besar akan mendapatkan manfaat terbesar dari pengelolaan bersama dalam fleet.
    • Resource di lingkungan deployment yang sama (misalnya, lingkungan produksi Anda) harus dikelola bersama dalam fleet.
  • Siapa yang mengelola resource?
    • Memiliki kontrol terpadu (atau setidaknya saling dipercaya) atas resource sangat penting untuk memastikan integritas fleet.

Merencanakan fleet untuk cluster baru

Bagian ini menjelaskan cara merencanakan fleet jika Anda memiliki kumpulan aplikasi yang diketahui, tetapi fleksibel tentang tempat aplikasi tersebut di-deploy. Hal ini mungkin karena Anda belum mengembangkan aplikasi tersebut, atau memigrasikannya dari platform container yang berbeda. Atau, Anda mungkin sudah memiliki aplikasi yang berjalan di cluster yang ada, tetapi bersedia memindahkan aplikasi ke cluster baru untuk mencapai arsitektur yang diinginkan.

Setelah fleet diidentifikasi, Anda dapat membuat project baru per fleet, membuat fleet di setiap project, serta membuat dan mendaftarkan cluster ke fleet yang diinginkan.

Mengaudit workload Anda

Mulailah dengan daftar semua workload Kubernetes (misalnya Deployment) yang ingin Anda deploy. Daftar ini tidak harus berupa daftar literal; daftar ini hanya dapat berupa ide tentang workload yang akan Anda perlukan. Kemudian, ikuti langkah-langkah di bagian ini untuk membagi kumpulan aplikasi tersebut secara progresif menjadi subset hingga Anda memiliki kumpulan pengelompokan minimal yang diperlukan. Hal ini akan menentukan fleet dan cluster yang Anda perlukan.

Mempertimbangkan unit bisnis

Organisasi Anda mungkin memiliki struktur IT gabungan, dengan satu tim IT pusat untuk organisasi, serta tim IT terpisah untuk setiap unit bisnis. Dalam hal ini, setiap tim IT gabungan mungkin ingin mengelola fleet-nya sendiri. Gunakan fleet terpisah jika workload dua unit bisnis (misalnya, audit dan perdagangan di bank) tidak dapat berkomunikasi satu sama lain karena alasan peraturan.

Memisahkan workload berdasarkan lingkungan

Pola umum yang berfungsi untuk banyak organisasi adalah mengelompokkan cluster berdasarkan lingkungan. Konfigurasi umum adalah memiliki tiga lingkungan utama: pengembangan, non-produksi (atau staging), dan produksi. Perubahan aplikasi biasanya di-deploy secara progresif (atau dipromosikan) ke setiap lingkungan dalam daftar. Karena hal ini, Anda memiliki deployment terpisah di setiap lingkungan untuk aplikasi dasar yang sama, seperti nama image container dasar yang sama. Lihat panduan penting Enterprise foundations untuk mengetahui contoh cara membuat lingkungan di organisasi Anda.

Fleet hanya boleh berisi cluster dari satu lingkungan. Tiga lingkungan, dengan satu fleet di setiap lingkungan, mungkin cukup untuk banyak organisasi. Lihat panduan penting Enterprise application untuk mengetahui contoh saat setiap lingkungan memiliki satu fleet dan cara aplikasi dapat di-deploy secara progresif.

Menggabungkan instance workload redundan

Jika aplikasi memerlukan ketersediaan tinggi, salah satu polanya adalah menjalankannya di dua region atau lebih. Hal ini melibatkan dua cluster atau lebih yang menjalankan deployment yang dikonfigurasi dengan sangat mirip dan dikelola sebagai satu unit. Sering kali, cluster tersebut akan memiliki load balancer yang mencakup instance aplikasi di semua cluster, atau menggunakan load balancing DNS.

Dalam skenario ini, tempatkan semua cluster tersebut ke dalam fleet yang sama. Cluster di region yang berbeda umumnya tidak perlu berada di fleet terpisah, kecuali jika diperlukan karena alasan peraturan atau alasan lainnya.

Merencanakan fleet dengan cluster yang ada

Bagian ini menjelaskan cara merencanakan fleet jika Anda memiliki workload yang berjalan di cluster yang ada, dan Anda tidak berencana memindahkannya. Cluster tersebut mungkin berada di atau di luar Google Cloud. Dalam skenario ini, tujuannya adalah membuat kumpulan fleet dalam organisasi Anda dan menetapkan cluster yang ada ke fleet tersebut.

Setelah fleet diidentifikasi, Anda dapat membuat project baru per fleet, membuat fleet di setiap project, dan mendaftarkan cluster ke fleet yang diinginkan.

Mengaudit cluster Anda

Mulailah dengan daftar semua cluster Kubernetes di organisasi Anda. Inventaris Aset Cloud adalah salah satu cara untuk menelusuri resource cluster Kubernetes di organisasi Anda.

Kemudian, Anda dapat mengikuti langkah-langkah di bagian ini untuk membagi kumpulan aplikasi tersebut secara progresif menjadi subset hingga Anda memiliki kumpulan pengelompokan minimal yang diperlukan. Hal ini akan menentukan fleet yang Anda perlukan.

Mempertimbangkan unit bisnis

Organisasi Anda mungkin memiliki struktur IT gabungan, dengan satu tim IT pusat untuk organisasi, serta tim IT terpisah untuk setiap unit bisnis. Tim IT per unit bisnis ini mungkin telah membuat cluster Anda yang ada. Biasanya, dalam hal ini, Anda mempartisi kumpulan cluster berdasarkan unit bisnis. Contohnya adalah saat workload unit bisnis tertentu (misalnya, audit dan perdagangan di bank) tidak dapat berkomunikasi satu sama lain karena alasan peraturan.

Jika unit bisnis hanya ada untuk tujuan akuntansi biaya, tetapi menggunakan tim IT yang sama, pertimbangkan untuk menggabungkan cluster mereka dalam satu fleet, terutama jika ada dependensi antar-layanan yang signifikan di seluruh unit bisnis.

Mengelompokkan cluster berdasarkan lingkungan

Identifikasi lingkungan yang digunakan di organisasi Anda. Nama lingkungan yang umum adalah dev, non-produksi (atau staging), dan prod.

Jika setiap cluster jelas hanya berada di salah satu lingkungan Anda, pisahkan daftar cluster Anda berdasarkan lingkungan. Namun, jika beberapa cluster berisi workload yang secara logis termasuk dalam lingkungan yang berbeda, sebaiknya deploy ulang aplikasi ke dalam cluster yang hanya berisi aplikasi yang termasuk dalam satu lingkungan logis.

Meminimalkan jumlah pemilik cluster

Saat menggabungkan project yang ada ke dalam fleet, mungkin ada kumpulan pengguna yang berbeda yang diizinkan untuk bertindak sebagai administrator di cluster tersebut, dengan mempertimbangkan kebijakan IAM (container.admin) dan RBAC (ClusterRoleBinding admin). Jika Anda berencana menggunakan fitur yang memerlukan kesamaan, tujuannya adalah membuat semua cluster memiliki kumpulan admin yang sama, dan memiliki kumpulan admin kecil untuk fleet. Jika cluster harus memiliki admin yang berbeda, dan tujuannya adalah menggunakan fitur yang memerlukan kesamaan, cluster tersebut mungkin tidak termasuk dalam fleet yang sama.

Misalnya, jika cluster C1 dan C2 memiliki admin yang berbeda yang tidak saling mempercayai, dan tidak bersedia berbagi izin admin ke tim platform pusat yang mengelola fleet, cluster tersebut tidak boleh dikelompokkan bersama dalam fleet.

Anda dapat mempelajari kesamaan lebih lanjut dan fitur mana yang memerlukannya di Cara kerja fleet.

Mempertimbangkan fitur fleet

Terlepas dari apakah Anda menggunakan cluster baru atau yang sudah ada, fitur fleet yang Anda pilih juga dapat memengaruhi organisasi fleet yang optimal. Misalnya, jika Anda memilih untuk menggunakan Workload Identity Federation di seluruh fleet, Anda mungkin ingin mengatur fleet dengan cara yang meminimalkan risiko saat menyiapkan autentikasi workload di seluruh fleet, atau jika Anda ingin menggunakan Cloud Service Mesh, Anda mungkin memerlukan cluster tertentu untuk berada di fleet yang sama. Jika Anda menggunakan Virtual Private Cloud (VPC), beberapa fitur memerlukan penggunaan satu VPC per fleet.

Anda dapat mengetahui lebih lanjut cara mengadopsi fitur fleet serta persyaratan dan batasannya di panduan berikutnya dalam seri ini, Merencanakan fitur fleet.

Mempertimbangkan perimeter VPC

Masalah lain yang perlu dipertimbangkan untuk cluster baru dan yang sudah ada adalah apakah Anda telah memilih atau ingin membuat jaringan pribadi Anda sendiri di Google Cloud dengan Virtual Private Cloud (VPC). Cluster dalam perimeter VPC (misalnya di VPC Bersama yang memiliki Kontrol Layanan VPC), dapat berada dalam fleet bersama. Jika Anda memiliki VPC Bersama yang dibatasi dan tidak dibatasi, sebaiknya tempatkan VPC tersebut ke dalam fleet terpisah.

Jika Anda berencana menggunakan perimeter Kontrol Layanan VPC, biasanya beberapa workload berada di dalam perimeter dan beberapa berada di luar perimeter. Anda harus berencana untuk memiliki versi Kontrol Layanan VPC dan non-Kontrol Layanan VPC dari setiap fleet di setiap lingkungan (atau setidaknya prod dan lingkungan segera sebelum prod).

Perhatikan saat merencanakan fleet dengan VPC bahwa beberapa fitur fleet memiliki persyaratan VPC tertentu, seperti mengharuskan semua cluster yang menggunakannya berada dalam jaringan VPC yang sama.

Langkah berikutnya