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 untuk arsitek Cloud serta admin dan operator Platform yang mengelola infrastruktur GKE dan ingin mengoptimalkan perencanaan dan penjadwalan kapasitas.
Ringkasan ketersediaan resource di GKE
Penjadwalan Kubernetes bergantung pada permintaan resource yang dideklarasikan. Saat menjadwalkan akselerator skala besar, seperti GPU atau TPU, permintaan resource yang ketat dapat menyebabkan cluster gagal melakukan peningkatan skala jika hardware tertentu tidak tersedia. Anda dapat mengoptimalkan ketersediaan kapasitas di GKE menggunakan fitur berikut:
- Pembuatan otomatis node pool: pembuatan node pool multi-kelompok yang dinamis.
- Fallback 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 sebelum meminta resource sesuai permintaan.
Praktik terbaik untuk ketersediaan resource di GKE
Bagian ini memberikan rekomendasi untuk meningkatkan ketersediaan kapasitas saat menjadwalkan workload di GKE. Praktik terbaik ini mencakup strategi seperti mendesain persyaratan hardware yang fleksibel, mengonfigurasi pembuatan otomatis node pool, 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, 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 fleksibilitas hardware
Untuk mengoptimalkan ketersediaan kapasitas, Anda dapat menginstruksikan GKE untuk menghindari pengikatan beban kerja ke satu kelompok mesin atau akselerator statis. Berikut adalah contoh cara mengonfigurasi node pool yang 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).
- Contoh alternatif: 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 kumpulan mana pun yang memiliki kapasitas yang tersedia.
Node pool GPU:
- Contoh utama: Seri A2 (GPU NVIDIA A100).
- Contoh alternatif: L4 (AI/ML Universal) atau T4 (Inferensi).
- Pola penerapan: Mengonfigurasi node pool atau ComputeClass terpisah untuk berbagai tingkat GPU. Untuk workload yang dapat berjalan tanpa fitur khusus A100, izinkan Pod untuk kembali ke kumpulan L4 atau T4 jika penyediaan A2 dibatasi.
Node pool TPU:
- Contoh utama: TPU Ironwood (TPU7x).
- Contoh alternatif: TPU v6 (Trillium) atau TPU v5 (v5e atau v5p).
- Pola penerapan: Penyediaan slice TPU dapat sangat dibatasi. Desain workload pelatihan dengan fleksibilitas tingkat framework (misalnya, konfigurasi JAX atau PyTorch yang mendukung topologi slice variabel) untuk men-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 yang lebih murah atau memiliki ketersediaan lebih tinggi secara fleksibel. |
| Pelatihan model TPU | TPU Ironwood (TPU7x) | TPU v6, TPU v5 (v5e atau v5p) | Menggunakan topologi yang 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:
Menentukan ComputeClass: membuat resource ComputeClass yang menentukan daftar jenis mesin, jenis GPU, atau model penyediaan yang diprioritaskan. GKE mencoba menyediakan node menggunakan konfigurasi prioritas tertinggi yang tersedia di class. Daftar fallback yang diprioritaskan akan sangat membantu Anda mendapatkan resource yang diperlukan workload Anda. Misalnya, untuk mencegah GKE kembali ke mesin tujuan umum saat akselerator khusus pilihan tidak tersedia, tambahkan setelan
whenUnsatisfiable: DoNotScaleUpke konfigurasi ComputeClass Anda. Untuk mengetahui informasi selengkapnya, lihat Mengontrol atribut node penskalaan otomatis dengan ComputeClass kustom.Mereferensikan ComputeClass dalam spesifikasi Pod: dalam spesifikasi Pod workload, gunakan label
cloud.google.com/compute-classuntuk menargetkan ComputeClass kustom Anda, bukan kelompok mesin atau jenis GPU tertentu. Untuk mengetahui informasi selengkapnya, lihat Meminta ComputeClass dalam workload.Menentukan beberapa toleransi: jika Anda tidak menggunakan ComputeClass, gunakan aturan afinitas node dalam spesifikasi Pod yang memungkinkan 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 yang 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 ketersediaan GKE
Selain diversifikasi hardware, gabungkan praktik terbaik GKE ini untuk mengoptimalkan keberhasilan penskalaan cluster:
- Menerapkan penyediaan berlebih Pod (buffer kapasitas): men-deploy Pod "jeda" berprioritas rendah yang memesan kapasitas node terlebih dahulu. Saat workload AI berprioritas tinggi dikirimkan dan kapasitas regional dibatasi, Kubernetes akan segera menghentikan Pod jeda, sehingga container dapat dimulai tanpa menunggu penyediaan node baru. Untuk mengetahui informasi selengkapnya, lihat Tentang buffer kapasitas.
- Menggunakan 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 mengalokasikan node atomik semua atau tidak sama sekali, yang mencegah kegagalan penskalaan cluster sebagian. Untuk mengetahui informasi selengkapnya, lihat Menjalankan workload skala besar dengan flex-start dengan penyediaan dalam antrean.
- Mengaktifkan streaming image dan pramuat image container: untuk image container AI yang besar (seperti image PyTorch atau TensorFlow yang melebihi 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) denganANYkebijakan lokasi. Setelan ini menginstruksikan autoscaler cluster untuk menelusuri kapasitas yang diminta di semua zona yang ditentukan. Autoscaler cluster menemukan kapasitas dengan menyeimbangkan jumlah node. Untuk mengetahui informasi selengkapnya, lihat Ringkasan autoscaler cluster. - Mengoptimalkan penggunaan 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 Google Cloud konsol, yang didukung oleh Gemini, yang membantu Anda mendesain arsitektur yang tangguh untuk GKE. Compute Advisor memberikan panduan ketersediaan VM Flex-start dan Spot VM yang hampir real-time, sekaligus memverifikasi kebijakan organisasi dan kuota resource Anda sebelum deployment. Compute Advisor tidak memberikan panduan ketersediaan untuk workload yang memerlukan resource sesuai permintaan.
Untuk mengakses Gemini di Google Cloud konsol, selesaikan langkah-langkah berikut:
Di Google Cloud konsol, buka halaman Ringkasan.
Di bagian Desain infrastruktur Anda dengan Compute Advisor, kirimkan perintah. Gemini akan mulai membuat respons.
Untuk membuat rekomendasi arsitektur, jalankan salah satu perintah contoh berikut di Compute Advisor. Saat Anda mengklik tombol Jalankan perintah di Compute Advisor, Google Cloud konsol 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 fallback saat mendesain konfigurasi cluster.
Configure a GKE cluster to improve chances of obtaining scarce GPU or TPU capacity.Fleksibilitas dan fallback 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 aturan afinitas dan penskalaan otomatis Pod yang memprioritaskan kapasitas reservasi.
Configure GKE autoscaling rules and Pod specs to prioritize consuming active reservations before scaling into on-demand pools.ComputeClass untuk prioritas fallback:
Kasus penggunaan: gunakan perintah ini untuk membuat manifes YAML untuk ComputeClass CustomResourceDefinition yang memprioritaskan GPU berperforma tinggi, tetapi menyertakan fallback tingkat bawah 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 autoscaler 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