Dokumen ini menjelaskan cara mendesain cluster Google Kubernetes Engine (GKE) yang tangguh dan strategi penjadwalan workload yang membantu Anda mendapatkan resource, seperti GPU, TPU, dan CPU berperforma tinggi. Dengan memanfaatkan Gemini di Google Cloud dan Compute Advisor (Pratinjau), Anda dapat mencegah Pod yang tertunda dan meningkatkan penjadwalan yang andal untuk workload AI.
Dokumen ini ditujukan bagi Cloud Architect serta Admin dan operator platform yang mengelola infrastruktur GKE dan ingin mengoptimalkan perencanaan dan penjadwalan kapasitas.
Ringkasan fleksibilitas, efisiensi, dan ketersediaan kapasitas komputasi di GKE
Penjadwalan Kubernetes mengandalkan permintaan resource yang dideklarasikan. Saat menjadwalkan akselerator berskala besar, seperti GPU atau TPU, permintaan resource yang ketat dapat menyebabkan cluster gagal ditingkatkan skalanya jika hardware tertentu tidak tersedia. Anda dapat mengoptimalkan ketersediaan kapasitas di GKE dengan menggunakan fitur berikut:
- Pembuatan otomatis node pool: pembuatan node pool dinamis dan multi-keluarga.
- Penggantian tingkat workload: toleransi dan pemilih node yang dikonfigurasi untuk menerima hardware alternatif.
- Penjadwalan geografis dan regional: Kemampuan multi-zona dan multi-regional GKE.
- Pengelolaan reservasi: menggunakan kapasitas yang telah dibeli di muka sebelum meminta resource on-demand.
Praktik terbaik untuk fleksibilitas, efisiensi, dan ketersediaan kapasitas komputasi di GKE
Bagian ini memberikan rekomendasi untuk meningkatkan ketersediaan kapasitas Anda saat menjadwalkan workload di GKE. Praktik terbaik ini mencakup strategi seperti merancang persyaratan hardware yang fleksibel, mengonfigurasi pembuatan otomatis kumpulan node, dan memanfaatkan distribusi geografis untuk beradaptasi dengan batasan resource. Pembuatan otomatis node pool mengelola node pool secara otomatis berdasarkan spesifikasi Pod. Daripada menentukan node pool terlebih dahulu, tentukan persyaratan resource dalam manifes Pod Anda, dan biarkan GKE membuat node secara dinamis.
Anda juga dapat menemukan dan menerapkan praktik terbaik berikut menggunakan Compute Advisor. Untuk mengetahui informasi selengkapnya, lihat Menggunakan Compute Advisor.
Opsi untuk meningkatkan ketersediaan kapasitas komputasi
Untuk mengoptimalkan ketersediaan kapasitas, Anda dapat menginstruksikan GKE untuk tidak mengikat workload ke satu jenis akselerator atau kelompok mesin statis. Berikut adalah contoh cara mengonfigurasi node pool fleksibel dan aturan afinitas Pod untuk berbagai class workload. Alternatif spesifik yang Anda pilih bergantung pada permintaan resource aplikasi Anda:
Node pool CPU tujuan umum:
- Contoh utama: N2 (tujuan umum berbasis Intel).
- Alternatif contoh: N2D (AMD EPYC), C2 atau C2D (Dioptimalkan untuk komputasi), atau E2 (Dioptimalkan untuk biaya).
- Pola penerapan: mengonfigurasi spesifikasi Pod dengan afinitas atau toleransi node yang memungkinkan penjadwalan di beberapa label kelompok mesin, misalnya,
cloud.google.com/machine-familydi["n2", "n2d", "c2d"]. Konfigurasi ini memungkinkan GKE menyediakan pool mana pun yang memiliki kapasitas yang tersedia.
Node pool GPU:
- Contoh utama: Seri A2 (GPU NVIDIA A100).
- Alternatif contoh: L4 (AI/ML Universal) atau T4 (Inferensi).
- Pola implementasi: Konfigurasikan node pool atau ComputeClass terpisah untuk tingkat GPU yang berbeda. Untuk workload yang dapat berjalan tanpa fitur khusus A100, izinkan Pod melakukan penggantian ke pool L4 atau T4 jika penyediaan A2 dibatasi.
TPU node pool:
- Contoh utama: TPU Ironwood (TPU7x).
- Alternatif contoh: TPU v6 (Trillium) atau TPU v5 (v5e atau v5p).
- Pola penerapan: Penyediaan slice TPU dapat sangat terbatas. Rancang workload pelatihan dengan fleksibilitas tingkat framework (misalnya, konfigurasi JAX atau PyTorch yang mendukung topologi slice variabel) untuk di-deploy di slice v6 atau v5 saat kapasitas TPU Ironwood (TPU7x) tidak tersedia.
Tabel berikut merangkum pilihan utama dan alternatif hardware untuk berbagai jenis workload:
| Jenis workload | Contoh pilihan utama | Contoh alternatif | Pertimbangan arsitektur |
|---|---|---|---|
| Workload sistem atau inti | N2 | N2D, C2D, E2 | Mencakup kumpulan hardware Intel dan AMD untuk pembuatan otomatis node pool. |
| Inferensi dan pemrosesan GPU | A2 (A100) | L4, T4 | Menargetkan node pool GPU dengan biaya lebih rendah atau ketersediaan lebih tinggi secara fleksibel. |
| Pelatihan model TPU | TPU Ironwood (TPU7x) | TPU v6, TPU v5 (v5e atau v5p) | Memanfaatkan topologi fleksibel untuk penjadwalan berbasis slice. |
Menerapkan pembuatan otomatis node pool dan ComputeClass
Untuk mengoptimalkan ketersediaan kapasitas, gabungkan pembuatan otomatis node pool dengan ComputeClasses. Daftar berikut mencakup praktik terbaik:
Tentukan ComputeClass: buat resource ComputeClass yang menentukan daftar prioritas kelompok mesin, jenis GPU, atau model penyediaan. GKE mencoba menyediakan node menggunakan konfigurasi prioritas tertinggi yang tersedia di class. Daftar penggantian yang diprioritaskan sangat membantu Anda mendapatkan resource yang diperlukan workload Anda. Misalnya, untuk mencegah GKE melakukan fallback ke mesin tujuan umum saat akselerator khusus yang diinginkan tidak tersedia, tambahkan setelan
whenUnsatisfiable: DoNotScaleUpke konfigurasi ComputeClass Anda. Untuk mengetahui informasi selengkapnya, lihat Mengontrol atribut node yang diskalakan otomatis dengan ComputeClass kustom.Merujuk ComputeClass dalam spesifikasi Pod: dalam spesifikasi Pod workload, gunakan label
cloud.google.com/compute-classuntuk menargetkan ComputeClass kustom, bukan kelompok mesin atau jenis GPU tertentu. Untuk mengetahui informasi selengkapnya, lihat Meminta ComputeClass dalam workload.Tentukan beberapa toleransi: jika Anda tidak menggunakan ComputeClass, gunakan aturan afinitas node dalam spesifikasi Pod yang mengizinkan berbagai jenis mesin (seperti
cloud.google.com/machine-familydi["n2", "n2d"]). Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi pembuatan otomatis node pool.
Fleksibilitas geografis dan multi-region di GKE
Untuk meningkatkan ketersediaan kapasitas, deploy cluster GKE yang mencakup beberapa zona, atau jalankan arsitektur multi-cluster:
Cluster multi-zona: pastikan node pool dikonfigurasi untuk melakukan penskalaan otomatis di semua zona yang tersedia di suatu region.
Federasi cluster multi-region: untuk tugas asinkron besar (seperti inferensi batch offline atau pelatihan terdistribusi), deploy orkestrator multi-cluster (seperti Kueue atau Cluster Director) untuk mengantrekan workload secara global dan mengirimkannya ke region dengan kapasitas yang tersedia.
Pod yang berjalan di Spot VM: jalankan workload yang dapat diinterupsi di Spot VM dengan menambahkan toleransi dan menginstruksikan GKE untuk mendistribusikan kapasitas berlebih di zona yang berbeda.
Praktik terbaik tambahan untuk fleksibilitas, efisiensi, dan ketersediaan kapasitas komputasi di GKE
Selain diversifikasi hardware, terapkan praktik terbaik GKE berikut untuk mengoptimalkan keberhasilan penskalaan cluster:
- Terapkan penyediaan berlebih Pod (buffer kapasitas): deploy Pod "jeda" berprioritas rendah yang mencadangkan kapasitas node terlebih dahulu. Saat workload AI berprioritas tinggi dikirimkan dan kapasitas regional terbatas, Kubernetes akan segera mengeluarkan Pod yang dijeda, sehingga memungkinkan container dimulai tanpa menunggu penyediaan node baru. Untuk mengetahui informasi selengkapnya, lihat Tentang buffer kapasitas.
- Gunakan Flex-start dengan penyediaan dalam antrean: untuk tugas pelatihan model AI dan batch besar, gunakan Flex-start dengan penyediaan dalam antrean, yang terintegrasi dengan Kueue dan Dynamic Workload Scheduler. Flex-start dengan penyediaan dalam antrean, alokasi node atomik semua atau tidak sama sekali, yang mencegah kegagalan peningkatan skala cluster parsial. Untuk mengetahui informasi selengkapnya, lihat Menjalankan workload skala besar dengan flex-start dengan penyediaan dalam antrean.
- Aktifkan streaming image dan pramuat image container: untuk image container AI berukuran besar (seperti image PyTorch atau TensorFlow yang berukuran lebih dari 10 GB), aktifkan streaming Image GKE atau gunakan boot disk sekunder untuk pramuat image. Konfigurasi ini mengurangi waktu pemanasan node, yang memungkinkan node yang baru disediakan mulai menjalankan workload dalam hitungan detik. Untuk mengetahui informasi selengkapnya, lihat Menggunakan streaming Image untuk mengambil image container dan Menggunakan boot disk sekunder untuk melakukan pramuat data atau image container.
- Menetapkan kebijakan lokasi autoscaler cluster ke
ANY: mengonfigurasi node pool (terutama untuk Spot VM atau flex-start) dengan kebijakan lokasiANY. Setelan ini menginstruksikan autoscaler cluster untuk mencari kapasitas yang diminta di semua zona yang ditentukan. Autoscaler cluster menemukan kapasitas daripada menyeimbangkan jumlah node. Untuk mengetahui informasi selengkapnya, lihat Ringkasan autoscaler cluster. - Mengoptimalkan pemanfaatan akselerator dengan berbagi GPU: untuk workload yang tidak memerlukan GPU khusus, gunakan GPU berbagi waktu, GPU multi-instance (MIG), atau NVIDIA MPS untuk memungkinkan beberapa container berbagi satu akselerator. Pendekatan ini mengoptimalkan kapasitas efektif di seluruh node pool. Untuk mengetahui informasi selengkapnya, lihat Tentang strategi berbagi GPU di GKE.
Menggunakan Compute Advisor
Compute Advisor adalah antarmuka yang didukung AI di konsol Google Cloud , yang didukung oleh Gemini, yang membantu Anda merancang arsitektur yang tangguh dan hemat biaya untuk GKE.
Compute Advisor memberikan panduan ketersediaan hampir real-time untuk VM Flex-start dan Spot VM, sekaligus memverifikasi kebijakan dan kuota resource organisasi Anda sebelum deployment. Compute Advisor tidak memberikan panduan ketersediaan untuk workload yang memerlukan resource on-demand.
Untuk mengakses Gemini di konsol Google Cloud , selesaikan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Overview.
-
Di bagian Design your infrastructure with Compute Advisor, kirimkan perintah. Gemini mulai membuat respons.
-
Untuk membuat rekomendasi arsitektur, jalankan salah satu contoh perintah berikut di Compute Advisor. Saat Anda mengklik tombol Run prompt in Compute Advisor, konsol Google Cloud mungkin memerlukan waktu lebih dari 15 detik untuk dimuat:
Strategi akselerator umum:
Kasus penggunaan: gunakan perintah ini untuk menganalisis sinyal kapasitas regional dan menerima rekomendasi tentang jenis mesin, zona, dan strategi penjadwalan penggantian saat mendesain konfigurasi cluster.
Configure a GKE cluster to improve chances of obtaining scarce GPU or TPU capacity.Fleksibilitas dan penggantian geografis:
Kasus penggunaan: gunakan perintah ini saat mendesain arsitektur multi-cluster atau sistem antrean tugas global (misalnya, dengan Kueue) untuk mengalihkan eksekusi workload di seluruh region, bergantung pada ketersediaan resource.
Configure multi-region fallbacks and geographic scheduling on GKE to increase GPU availability.Penggunaan reservasi prioritas:
Kasus penggunaan: gunakan perintah ini untuk membuat pola konfigurasi YAML untuk afinitas Pod dan aturan penskalaan otomatis yang memprioritaskan kapasitas reservasi.
Configure GKE autoscaling rules and Pod specs to prioritize consuming active reservations before scaling into on-demand pools.ComputeClasses untuk prioritas fallback:
Kasus penggunaan: gunakan perintah ini untuk membuat manifes YAML untuk CustomResourceDefinition ComputeClass yang memprioritaskan GPU berperforma tinggi, tetapi menyertakan penggantian tingkat yang lebih rendah untuk memastikan penjadwalan workload.
Define a ComputeClass manifest for GKE to prioritize A2 GPU nodes with automatic fallbacks to L4 or T4 GPUs.Pembuatan otomatis node pool untuk diversifikasi:
Kasus penggunaan: Gunakan perintah ini untuk menulis manifes YAML untuk batas resource penskala otomatis cluster GKE dan aturan afinitas Pod yang memungkinkan NAP menyediakan node GPU atau CPU alternatif secara otomatis.
Configure GKE node pool auto-creation to diversify machine families and prevent pending pods when regional accelerator capacity is constrained.
Langkah berikutnya
- Mendesain dan mengoptimalkan cluster GKE dengan Compute Advisor
- Mengonfigurasi pembuatan otomatis node pool
- Memecahkan masalah penskalaan otomatis Pod horizontal