Halaman ini menjelaskan Dynamic Workload Scheduler di Google Kubernetes Engine (GKE). Dynamic Workload Scheduler meningkatkan akses ke GPU dan mengoptimalkan biaya penjadwalan.
Informasi di halaman ini dapat membantu Anda melakukan hal berikut:
- Memahami cara kerja Dynamic Workload Scheduler di GKE.
- Tentukan apakah Dynamic Workload Scheduler tepat untuk kasus penggunaan Anda.
- Kelola gangguan menggunakan Dynamic Workload Scheduler.
- Pahami batasan Dynamic Workload Scheduler di GKE.
Halaman ini ditujukan untuk Admin dan operator platform dan Engineer machine learning (ML) yang ingin memastikan bahwa infrastruktur akselerator dioptimalkan untuk workload Anda.
Persyaratan
Untuk menggunakan Dynamic Workload Scheduler di GKE, cluster Anda harus memenuhi persyaratan versi berikut berdasarkan mode operasinya:
- Untuk cluster Standar, gunakan versi 1.28.3-gke.1098000 atau yang lebih baru.
- Untuk cluster Autopilot, gunakan versi 1.30.3-gke.1451000 atau yang lebih baru.
Cara kerja Dynamic Workload Scheduler
Dynamic Workload Scheduler adalah platform pengelolaan resource dan penjadwalan Tugas yang mengoptimalkan cara Anda mendapatkan akses ke GPU. Untuk menggunakan Dynamic Workload Scheduler, Anda mengonfigurasi node pool agar berfungsi dengan Dynamic Workload Scheduler dan menentukan kapasitas GPU yang diperlukan dalam workload Anda. Untuk mengetahui informasi selengkapnya, lihat Men-deploy GPU untuk workload batch dan AI dengan Dynamic Workload Scheduler.
GKE secara otomatis menyediakan VM dengan menyelesaikan proses berikut saat kapasitas tersedia:
- GKE mengidentifikasi bahwa node pool Anda telah mengaktifkan Dynamic Workload Scheduler dan bahwa workload dapat menunggu selama waktu yang tidak ditentukan, hingga semua node yang diperlukan siap digunakan secara bersamaan.
- Autoscaler cluster menerima permintaan Anda dan menghitung jumlah node yang diperlukan, memperlakukannya sebagai satu unit.
- Penjadwal menunggu hingga semua resource yang diperlukan tersedia di satu zona. Cluster yang menjalankan GKE versi 1.29.1-gke.1708000 dan yang lebih baru mengoptimalkan pemilihan zona untuk waktu tunggu yang lebih rendah; versi sebelumnya mungkin mengalami antrean yang lebih lama.
- Autoscaler cluster menyediakan node yang diperlukan jika tersedia secara bersamaan. Semua Pod beban kerja dapat berjalan bersama di node yang baru disediakan. Node ini berjalan maksimal tujuh hari, atau untuk durasi yang lebih singkat jika
Anda menentukan nilai dalam parameter
maxRunDurationSeconds
. Parameter ini tersedia dengan GKE versi 1.28.5-gke.1355000 atau yang lebih baru. - Setelah waktu berjalan yang Anda tentukan di parameter
maxRunDurationSeconds
berakhir, node dan Pod akan didahului. - Node yang disediakan tidak digunakan kembali di antara eksekusi beban kerja. Setiap permintaan penyediaan memicu pembuatan node baru dengan durasi tujuh hari baru. Jika Pod selesai lebih cepat dan node tidak lagi digunakan, autoscaler cluster akan menghapusnya sesuai dengan profil penskalaan otomatis.
GKE menghitung durasi untuk setiap permintaan Dynamic Workload Scheduler di tingkat node. Waktu yang tersedia untuk menjalankan Pod mungkin sedikit lebih kecil karena keterlambatan selama startup. Percobaan ulang Pod berbagi durasi ini, yang berarti lebih sedikit waktu yang tersedia untuk Pod setelah percobaan ulang. GKE menghitung durasi untuk setiap permintaan Dynamic Workload Scheduler secara terpisah.
Kapan harus menggunakan Dynamic Workload Scheduler
Sebaiknya gunakan Dynamic Workload Scheduler jika workload Anda memenuhi semua kondisi berikut:
- Anda meminta GPU untuk menjalankan workload.
- Anda memiliki kapasitas GPU yang dicadangkan terbatas atau tidak ada dan Anda memerlukan akses yang lebih andal ke GPU.
- Workload Anda fleksibel waktunya dan kasus penggunaan Anda dapat menunggu untuk mendapatkan semua kapasitas yang diminta, misalnya, saat GKE mengalokasikan resource GPU di luar jam tersibuk.
- Workload Anda memerlukan beberapa node dan tidak dapat mulai berjalan hingga semua node GPU disediakan dan siap secara bersamaan (misalnya, jika Anda menjalankan workload pelatihan ML terdistribusi).
Mengelola gangguan pada workload yang menggunakan Dynamic Workload Scheduler
Workload yang memerlukan ketersediaan semua node, atau sebagian besar node, dalam node pool sensitif terhadap pengusiran. Selain itu, node yang disediakan menggunakan permintaan Dynamic Workload Scheduler tidak mendukung operasi perbaikan atau upgrade otomatis. Operasi ini menghapus semua beban kerja dari node, sehingga beban kerja tidak dapat berjalan.
Praktik terbaik untuk meminimalkan gangguan beban kerja
Untuk meminimalkan gangguan pada workload yang sedang berjalan yang menggunakan Dynamic Workload Scheduler, lakukan tugas berikut:
- Bergantung pada
pendaftaran saluran rilis cluster Anda,
gunakan praktik terbaik berikut untuk mencegah upgrade otomatis node
mengganggu workload Anda:
- Jika cluster Anda tidak terdaftar di saluran rilis, nonaktifkan upgrade otomatis node.
- Jika cluster Anda terdaftar di saluran rilis, gunakan masa pemeliharaan dan pengecualian untuk mencegah GKE mengupgrade node secara otomatis saat workload Anda berjalan.
- Nonaktifkan perbaikan otomatis node.
- Gunakan masa pemeliharaan dan pengecualian untuk meminimalkan gangguan pada workload yang sedang berjalan, sekaligus memastikan bahwa GKE masih memiliki waktu untuk melakukan pemeliharaan otomatis. Pastikan untuk menjadwalkan waktu tersebut saat tidak ada workload yang berjalan.
- Untuk memastikan node pool Anda tetap yang terbaru, upgrade node pool secara manual saat tidak ada permintaan Dynamic Workload Scheduler yang aktif dan node pool kosong.
Batasan
- Anti-afinitas antar-pod tidak didukung. Autoscaler cluster tidak mempertimbangkan aturan anti-afinitas antar-pod selama penyediaan node, yang dapat menyebabkan workload tidak dapat dijadwalkan. Situasi ini dapat terjadi jika node untuk dua objek Dynamic Workload Scheduler atau lebih disediakan di node pool yang sama.
- Hanya node GPU yang didukung.
- Pemesanan tidak didukung dengan Dynamic Workload Scheduler. Anda harus menentukan
--reservation-affinity=none
saat membuat node pool. Dynamic Workload Scheduler hanya memerlukan dan mendukung kebijakan lokasiANY
untuk penskalaan otomatis cluster. - Satu permintaan Dynamic Workload Scheduler dapat membuat hingga 1.000 virtual machine (VM), yang merupakan jumlah maksimum node per zona untuk satu node pool.
- GKE menggunakan kuota
ACTIVE_RESIZE_REQUESTS
Compute Engine untuk mengontrol jumlah permintaan Dynamic Workload Scheduler yang tertunda dalam antrean. Secara default, kuota ini memiliki batas 100 permintaan per project Google Cloud . Jika Anda mencoba membuat permintaan Dynamic Workload Scheduler yang lebih besar dari kuota ini, permintaan baru akan gagal. - Node pool yang menggunakan Dynamic Workload Scheduler sensitif terhadap gangguan karena node disediakan secara bersamaan. Untuk mempelajari lebih lanjut, lihat Mengelola gangguan pada workload yang menggunakan Dynamic Workload Scheduler.
- Anda mungkin melihat VM tambahan berumur pendek yang tercantum di konsol Google Cloud. Perilaku ini dimaksudkan karena Compute Engine dapat membuat, lalu segera menghapus VM hingga kapasitas untuk menyediakan semua mesin yang diperlukan tersedia.
- Spot VM tidak didukung.