Setelah membuat cluster Google Kubernetes Engine (GKE) yang dioptimalkan untuk AI, Anda dapat mengaktifkan prediksi kondisi node. Jika Anda berencana menjadwalkan workload menggunakan Topology Aware Scheduling (TAS) dan Kueue, mengaktifkan prediksi kesehatan node akan memungkinkan penjadwal cluster melakukan hal berikut:
Identifikasi node yang kemungkinan akan mengalami penurunan performa dalam lima jam ke depan.
Hindari penjadwalan workload baru di node tersebut.
Pendekatan ini membantu Anda meminimalkan gangguan pada beban kerja penting dan yang sensitif terhadap gangguan, seperti beban kerja pelatihan skala besar.
Dokumen ini menjelaskan cara mengaktifkan prediksi kondisi node di cluster GKE yang menggunakan node A4X Max, A4X, A4, atau A3 Ultra. Untuk mempelajari cara menggunakan metrik prediksi kondisi node di dasbor Cloud Monitoring saat, misalnya, Anda ingin memecahkan masalah performa pada cluster Slurm, lihat Memantau instance Compute Engine dan cluster Slurm.
Batasan
Sebelum mengaktifkan prediksi kondisi node di cluster GKE, pertimbangkan batasan berikut:
Node harus menggunakan jenis mesin A4X Max, A4X, A4, atau A3 Ultra.
Node harus menggunakan model penyediaan terikat reservasi.
Memahami prediksi kesehatan node
Saat Anda mengaktifkan prediksi kondisi node di cluster GKE, CronJob akan menerapkan label gke.google.com/recommended-to-run-large-training-workload ke setiap node di cluster Anda. CronJob menetapkan nilai label ke
kemungkinan kondisi GPU node akan menurun, dan memperbarui nilai ini setiap
10 menit. Jika nilai label adalah true, berarti node dalam kondisi baik. Jika tidak,
jika nilai label adalah false, node kemungkinan akan mengalami penurunan kualitas dalam lima
jam berikutnya. Nilai label dapat berubah dari waktu ke waktu berdasarkan kondisi GPU node.
Jika Anda melihat bahwa node kemungkinan akan mengalami penurunan performa, Anda dapat melakukan salah satu atau kedua hal berikut:
Hindari penjadwalan workload di node. Anda dapat mengonfigurasi Kueue untuk menghindari penjadwalan beban kerja pada node yang menampilkan nilai
false, seperti yang dijelaskan dalam dokumen ini.Laporkan node sebagai rusak. Jika node mengalami masalah seperti suhu GPU yang tinggi atau performa yang lambat, Anda dapat melaporkan node tersebut sebagai rusak. Tindakan ini memulai peristiwa pemeliharaan host untuk node, sehingga node tersebut tersedia kembali untuk menjalankan workload setelah pemeliharaan selesai. Untuk mendapatkan petunjuk, lihat Melaporkan host yang bermasalah melalui GKE.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah
gcloud components update. gcloud CLI versi sebelumnya mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
Untuk terhubung ke cluster Anda, jalankan perintah berikut:
gcloud container clusters get-credentials CLUSTER_NAMEGanti
CLUSTER_NAMEdengan nama cluster Anda.
Mengaktifkan prediksi kesehatan node
Setelah bersiap untuk menjadwalkan workload di cluster GKE menggunakan TAS, Anda dapat mengaktifkan prediksi kesehatan node dengan menyelesaikan langkah-langkah berikut:
Men-deploy pemberian label node otomatis
Untuk men-deploy pelabelan node otomatis untuk prediksi kondisi node di cluster GKE Anda, selesaikan langkah-langkah berikut:
Buat clone repositori git akselerator hardware di GKE:
git clone https://github.com/GoogleCloudPlatform/container-engine-accelerators.gitBuka direktori
topology-scheduler:cd container-engine-accelerators/gpudirect-tcpxo/topology-schedulerBuat ConfigMap Kubernetes yang berisi skrip Python,
schedule-daemon.pydanlabel-nodes-daemon.py, yang mengkueri skor kesehatan:kubectl create configmap predictor-scheduler-scripts \ --namespace=kube-system \ --from-file=schedule-daemon.py=schedule-daemon.py \ --from-file=label-nodes-daemon.py=label-nodes-daemon.pyTerapkan konfigurasi akun layanan untuk memberikan izin yang diperlukan (membaca metrik Monitoring dan melakukan patch pada objek Node) ke CronJob:
kubectl apply -f service-account.yamlDeploy DaemonSet yang menjadwalkan tugas pelabelan node:
kubectl apply -f label-nodes-daemon.yaml
Perbarui konfigurasi Tugas Anda
Untuk mengaktifkan prediksi kondisi node saat menggunakan Kueue, Anda harus memperbarui konfigurasi Job untuk memeriksa nilai prediksi kondisi dan, jika didukung, persyaratan topologi sebelum memulai workload.
Untuk memperbarui konfigurasi Job dan mengaktifkan prediksi kondisi node, di kolom
spec, tambahkan kolom berikut:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: gke.google.com/recommended-to-run-large-training-workload
operator: NotIn
values:
- "False"
...
Memverifikasi pemberian label node
Setelah CronJob berjalan untuk pertama kalinya, yaitu sekitar 10 menit
setelah deployment, verifikasi apakah CronJob telah menerapkan
label gke.google.com/recommended-to-run-large-training-workload ke node Anda.
Melihat daftar node yang menerapkan label
gke.google.com/recommended-to-run-large-training-workload:
kubectl get nodes -L gke.google.com/recommended-to-run-large-training-workload
Nilai label dapat berupa salah satu dari berikut:
true: node diprediksi akan berfungsi normal dalam lima jam ke depan.false: node kemungkinan akan mengalami penurunan kualitas dalam lima jam ke depan. Jika Anda mengonfigurasi konfigurasi Tugas seperti yang dijelaskan dalam dokumen ini, maka Kueue akan menghindari penjadwalan beban kerja baru di node.
Langkah berikutnya
Untuk mempelajari cara mengelola peristiwa umum yang relevan dengan cluster GKE dan workload AI, lihat Mengelola cluster GKE yang dioptimalkan untuk AI.
Untuk mempelajari lebih lanjut cara menjadwalkan tugas di GKE dengan Kueue, lihat Men-deploy sistem batch menggunakan Kueue.