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 serta memberikan konsistensi dan kemampuan observasi yang komprehensif pada grup cluster yang besar. Sejumlah fitur GKE hanya tersedia melalui armada.

Strategi pengelompokan yang Anda gunakan untuk membuat armada 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 semuanya sama, sebaiknya Anda memiliki sesedikit mungkin armada yang diperlukan dalam organisasi Anda.

Panduan ini ditujukan bagi arsitek Cloud yang ingin mulai menggunakan armada 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 armada dengan cluster yang ada.

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

Sebelum membaca halaman ini, pastikan Anda sudah memahami konsep berikut:

Batasan fleet dan resource

Batasan umum berikut berlaku saat membuat armada:

  • Project Google Cloud tertentu hanya dapat memiliki satu fleet (atau tidak ada fleet) yang terkait dengannya, meskipun fleet tersebut dapat mencakup cluster dari beberapa project. Project yang terkait dengan fleet dikenal sebagai project host fleet.
  • Cluster hanya dapat menjadi anggota dari satu fleet dalam satu waktu.
  • 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 armada adalah 250, meskipun Anda dapat meminta batas yang lebih tinggi jika diperlukan.

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

Prinsip umum

Berikut adalah pertanyaan umum yang harus Anda ajukan saat memutuskan apakah akan mengelompokkan cluster dalam armada. Kita akan melihat cara penerapannya secara lebih mendetail di bagian berikut.

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

Merencanakan fleet untuk cluster baru

Bagian ini menjelaskan cara merencanakan armada saat Anda memiliki sekumpulan aplikasi yang diketahui, tetapi fleksibel mengenai tempat aplikasi tersebut di-deploy. Hal ini mungkin karena Anda belum mengembangkan aplikasi tersebut, atau sedang memigrasikannya dari platform penampung yang berbeda. Atau, Anda mungkin sudah menjalankan aplikasi di cluster yang ada, tetapi ingin memindahkan aplikasi ke cluster baru untuk mendapatkan arsitektur yang diinginkan.

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

Mengaudit workload Anda

Mulai dengan daftar semua workload Kubernetes (misalnya Deployment) yang ingin Anda deploy. Daftar ini tidak harus berupa daftar literal; daftar ini bisa berupa ide tentang workload yang akan Anda perlukan. Kemudian, ikuti langkah-langkah di bagian ini untuk membagi serangkaian aplikasi tersebut secara progresif menjadi subset hingga Anda memiliki serangkaian pengelompokan minimum yang diperlukan. Hal ini akan menentukan armada 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 armada mereka 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. Oleh karena itu, Anda memiliki deployment terpisah di setiap lingkungan untuk aplikasi pokok yang sama, seperti nama image container dasar yang sama. Lihat cetak biru fondasi Enterprise untuk mengetahui contoh cara membuat lingkungan di organisasi Anda.

Fleet hanya boleh berisi cluster dari satu lingkungan. Tiga lingkungan, dengan satu armada di setiap lingkungan, mungkin sudah cukup untuk banyak organisasi. Lihat Cetak biru aplikasi perusahaan untuk contoh saat setiap lingkungan memiliki satu armada dan cara aplikasi dapat di-deploy secara progresif.

Menggabungkan instance workload yang redundan

Jika aplikasi memerlukan ketersediaan tinggi, salah satu pola adalah menjalankannya di dua atau lebih region. Hal ini melibatkan dua cluster atau lebih yang menjalankan deployment dengan konfigurasi yang sangat mirip dan dikelola sebagai satu unit. Biasanya, mereka 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 yang terpisah, kecuali jika diperlukan karena alasan peraturan atau lainnya.

Merencanakan fleet dengan cluster yang ada

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

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

Mengaudit cluster Anda

Mulai 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 minimum yang diperlukan. Hal ini akan menentukan armada yang Anda butuhkan.

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 yang ada. Biasanya dalam kasus ini, Anda mempartisi set cluster menurut 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 ada hanya untuk tujuan akuntansi biaya, tetapi menggunakan tim IT yang sama, pertimbangkan untuk menggabungkan cluster mereka dalam satu armada, terutama jika ada dependensi antar-layanan yang signifikan di seluruh unit bisnis.

Mengelompokkan cluster menurut lingkungan

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

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

Meminimalkan jumlah pemilik cluster

Saat menggabungkan project yang ada ke dalam armada, mungkin ada berbagai kumpulan pengguna yang diberi otorisasi 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 agar semua cluster memiliki kumpulan admin yang sama, dan ada sedikit admin untuk fleet. Jika cluster harus memiliki admin yang berbeda, dan tujuannya adalah menggunakan fitur yang memerlukan kesamaan, maka cluster tersebut mungkin tidak termasuk dalam fleet yang sama.

Misalnya, jika cluster C1 dan C2 memiliki admin yang berbeda yang tidak saling memercayai, dan tidak bersedia membagikan izin admin ke tim platform pusat yang mengelola armada, maka cluster tersebut tidak boleh dikelompokkan bersama dalam armada.

Anda dapat mempelajari lebih lanjut kesamaan 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 armada.

Anda dapat mengetahui lebih lanjut cara menerapkan fitur fleet serta persyaratan dan batasannya dalam 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 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 satu fleet. Jika Anda memiliki VPC Bersama yang dibatasi dan tidak dibatasi, sebaiknya masukkan VPC tersebut ke dalam fleet yang terpisah.

Jika Anda berencana menggunakan perimeter Kontrol Layanan VPC, biasanya beberapa beban kerja 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 tepat sebelum prod).

Saat merencanakan armada dengan VPC, perhatikan bahwa beberapa fitur armada memiliki persyaratan VPC tertentu, seperti mengharuskan semua cluster yang menggunakannya berada dalam jaringan VPC yang sama.

Langkah berikutnya