Dokumen ini memberikan ringkasan untuk pengelolaan workload di Google Distributed Cloud (GDC) dengan air gap. Topik-topik berikut akan dibahas:
Meskipun beberapa desain deployment workload direkomendasikan, Anda tidak harus mengikutinya persis seperti yang ditentukan. Setiap semesta GDC memiliki persyaratan dan pertimbangan unik yang harus dipenuhi berdasarkan kasus per kasus.
Dokumen ini ditujukan bagi administrator IT dalam grup administrator platform yang bertanggung jawab untuk mengelola resource dalam organisasi mereka, dan developer aplikasi dalam grup operator aplikasi yang bertanggung jawab untuk mengembangkan dan memelihara aplikasi di semesta GDC.
Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.
Tempat men-deploy workload
Di platform GDC, operasi untuk men-deploy workload virtual machine (VM) dan workload container berbeda. Diagram berikut menggambarkan pemisahan beban kerja dalam lapisan bidang data organisasi Anda.
Workload berbasis VM beroperasi dalam VM. Sebaliknya, workload container beroperasi dalam cluster Kubernetes. Pemisahan mendasar antara VM dan cluster Kubernetes memberikan batas isolasi antara workload VM dan workload container Anda. Untuk mengetahui informasi selengkapnya, lihat Hierarki resource.
Bagian berikut memperkenalkan perbedaan antara setiap jenis beban kerja dan siklus proses deployment-nya.
Workload berbasis VM
Anda dapat membuat VM untuk menghosting workload berbasis VM. Anda memiliki banyak opsi konfigurasi untuk bentuk dan ukuran VM guna membantu memenuhi persyaratan workload berbasis VM Anda dengan sebaik-baiknya. Anda harus membuat VM dalam project, yang dapat memiliki banyak workload VM. VM adalah resource turunan dari project. Untuk mengetahui informasi selengkapnya, lihat Ringkasan VM.
Project yang hanya berisi workload berbasis VM tidak memerlukan cluster Kubernetes. Oleh karena itu, Anda tidak perlu menyediakan cluster Kubernetes untuk workload berbasis VM.
Workload berbasis container
Anda dapat men-deploy workload berbasis container ke pod di cluster Kubernetes. Cluster Kubernetes terdiri dari jenis node berikut:
Node bidang kontrol: menjalankan layanan pengelolaan, seperti penjadwalan, etcd, dan server API.
Node pekerja: menjalankan pod dan aplikasi container Anda.
Cluster Kubernetes dapat dilampirkan ke satu atau banyak project, tetapi bukan merupakan resource turunan dari project. Ini adalah perbedaan mendasar yang dimiliki cluster Kubernetes dibandingkan dengan VM. VM adalah resource turunan dari project, sedangkan cluster Kubernetes beroperasi sebagai resource turunan dari organisasi, sehingga dapat dilampirkan ke beberapa project.
Untuk penjadwalan pod dalam cluster Kubernetes, GDC mengadopsi konsep umum Kubernetes tentang penjadwalan, pendahuluan, dan pengusiran. Praktik terbaik dalam menjadwalkan pod dalam cluster bervariasi berdasarkan persyaratan workload Anda.
Untuk mengetahui informasi selengkapnya tentang cluster Kubernetes, lihat Ringkasan cluster Kubernetes. Untuk mengetahui informasi selengkapnya tentang cara mengelola container di cluster Kubernetes, lihat Workload container di GDC.
Praktik terbaik untuk mendesain cluster Kubernetes
Bagian ini memperkenalkan praktik terbaik untuk mendesain cluster Kubernetes:
- Membuat cluster terpisah per lingkungan pengembangan software
- Membuat lebih sedikit cluster yang lebih besar
- Membuat lebih sedikit node pool yang lebih besar dalam cluster
Pertimbangkan setiap praktik terbaik untuk mendesain desain cluster yang tangguh untuk siklus proses workload container Anda.
Membuat cluster terpisah per lingkungan pengembangan software
Selain project terpisah per lingkungan pengembangan software,
sebaiknya desain cluster Kubernetes terpisah per lingkungan pengembangan software. Lingkungan pengembangan software adalah area dalam semesta GDC Anda yang ditujukan untuk semua operasi yang sesuai dengan fase siklus proses yang ditetapkan. Misalnya, jika Anda memiliki dua lingkungan pengembangan software bernama development
dan production
di organisasi Anda, Anda dapat membuat serangkaian cluster Kubernetes terpisah untuk setiap lingkungan dan melampirkan project ke setiap cluster berdasarkan kebutuhan Anda. Sebaiknya cluster Kubernetes dalam siklus proses praproduksi dan produksi memiliki beberapa project yang terpasang.
Cluster yang ditentukan untuk setiap lingkungan pengembangan software mengasumsikan bahwa workload dalam lingkungan pengembangan software dapat berbagi cluster. Kemudian, Anda menetapkan project ke cluster Kubernetes di lingkungan yang sesuai. Cluster Kubernetes dapat dibagi lagi menjadi beberapa node pool atau menggunakan taint untuk isolasi workload.
Dengan memisahkan cluster Kubernetes berdasarkan lingkungan pengembangan software, Anda mengisolasi konsumsi resource, kebijakan akses, peristiwa pemeliharaan, dan perubahan konfigurasi tingkat cluster antara beban kerja produksi dan non-produksi.
Diagram berikut menunjukkan contoh desain cluster Kubernetes untuk beberapa workload yang mencakup project, cluster, lingkungan pengembangan software, dan class mesin.
Arsitektur contoh ini mengasumsikan bahwa beban kerja dalam lingkungan pengembangan software produksi dan pengembangan dapat berbagi cluster. Setiap lingkungan memiliki serangkaian cluster Kubernetes terpisah, yang selanjutnya dibagi lagi menjadi beberapa kumpulan node untuk persyaratan class mesin yang berbeda.
Atau, mendesain beberapa cluster Kubernetes berguna untuk operasi penampung seperti skenario berikut:
- Anda memiliki beberapa workload yang disematkan ke versi Kubernetes tertentu, sehingga Anda mempertahankan cluster yang berbeda pada versi yang berbeda.
- Anda memiliki beberapa workload yang memerlukan kebutuhan konfigurasi cluster yang berbeda, seperti kebijakan pencadangan, sehingga Anda membuat beberapa cluster dengan konfigurasi yang berbeda.
- Anda menjalankan salinan cluster secara paralel untuk memfasilitasi upgrade versi yang mengganggu atau strategi deployment blue-green.
- Anda membuat workload eksperimental yang berisiko membatasi server API atau titik kegagalan tunggal lainnya dalam cluster, sehingga Anda mengisolasinya dari workload yang ada.
Diagram berikut menunjukkan contoh saat beberapa cluster dikonfigurasi per lingkungan pengembangan software karena persyaratan seperti operasi penampung yang dijelaskan di bagian sebelumnya.
Membuat lebih sedikit cluster
Untuk pemanfaatan resource yang efisien, sebaiknya rancang jumlah cluster Kubernetes paling sedikit yang memenuhi persyaratan Anda untuk memisahkan lingkungan pengembangan software dan operasi penampung. Setiap cluster tambahan akan menimbulkan konsumsi resource overhead tambahan, seperti node bidang kontrol tambahan yang diperlukan. Oleh karena itu, cluster yang lebih besar dengan banyak beban kerja menggunakan resource komputasi pokok secara lebih efisien daripada banyak cluster kecil.
Jika ada beberapa cluster dengan konfigurasi serupa, akan ada beban tambahan untuk memantau kapasitas cluster dan merencanakan dependensi antar-cluster.
Jika kapasitas cluster hampir penuh, sebaiknya tambahkan node tambahan ke cluster, bukan membuat cluster baru.
Membuat lebih sedikit node pool dalam cluster
Untuk penggunaan resource yang efisien, sebaiknya rancang lebih sedikit node pool yang lebih besar dalam cluster Kubernetes.
Mengonfigurasi beberapa node pool berguna saat Anda perlu menjadwalkan pod yang memerlukan class mesin yang berbeda dengan yang lain. Buat kumpulan node untuk setiap class mesin yang diperlukan workload Anda, dan tetapkan kapasitas node ke penskalaan otomatis untuk memungkinkan penggunaan resource komputasi yang efisien.
Langkah berikutnya
- Hierarki resource
- Membuat aplikasi penampung yang selalu tersedia
- Membuat aplikasi VM dengan ketersediaan tinggi