Mengonfigurasi GKE untuk Diagnostik ML

Jika Anda menggunakan Google Kubernetes Engine (GKE) untuk workload ML, Anda dapat menggunakan platform Diagnostik ML dengan dua cara:

  1. Pengumpulan metrik sistem dan pemantauan workload otomatis: Untuk pengumpulan metrik sistem dan pemantauan workload otomatis, Anda tidak perlu menginstrumentasikan kode atau melakukan konfigurasi tambahan. Pengumpulan metrik sistem dan pemantauan beban kerja diaktifkan secara default, dan Anda tidak perlu melakukan langkah-langkah dalam panduan ini. Pemantauan workload mendukung jenis tugas GKE jobset dan job, serta kompatibel dengan GKE versi 1.36.0-gke.4681000 dan yang lebih baru.
  2. ML Diagnostics SDK dan pembuatan profil sesuai permintaan: Jika Anda ingin menggunakan ML Diagnostics SDK dan melakukan pembuatan profil sesuai permintaan, gunakan panduan ini untuk mengonfigurasi cluster GKE dan menginstal artefak GKE yang diperlukan.

Konfigurasi workload Anda bergantung pada apakah Anda menggunakan pembuatan profil sesuai permintaan atau pembuatan profil terprogram.

  • Pembuatan profil sesuai permintaan: Anda harus menginstal connection-operator.
  • Pembuatan profil terprogram: Mengharuskan Anda menginstal injection-webhook, melabeli beban kerja, dan menggunakan ML Diagnostics SDK.

Jika Anda menggunakan versi GKE yang lebih baru dari 1.35.0-gke.3065000, Anda dapat menyiapkan cluster GKE untuk Diagnostik ML dengan satu perintah gcloud CLI. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan dengan gcloud CLI.

Untuk versi GKE sebelum 1.35.0-gke.3065000, Anda perlu mengonfigurasi cluster GKE secara manual untuk menginstal artefak cert-manager, injection-webhook, dan connection-operator. Untuk mengetahui informasi selengkapnya, lihat Penginstalan manual.

Menyiapkan dengan gcloud CLI

Untuk versi GKE yang lebih baru dari 1.35.0-gke.3065000, gunakan salah satu perintah gcloud CLI berikut untuk men-deploy komponen ML Diagnostics yang diperlukan (connection-operator dan injection-webhook) ke cluster GKE Anda.

Untuk cluster GKE baru:

gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics

Untuk cluster GKE yang ada:

gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics

Untuk menonaktifkan Diagnostik ML, gunakan perintah berikut:

gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics

Anda juga dapat mengaktifkan perintah gcloud CLI melalui konsol Google Cloud GKE:

  • Untuk cluster GKE baru, buka Feature Manager > Managed Machine Learning Diagnostics.

    Buka Diagnostik Machine Learning Terkelola GKE

  • Untuk cluster GKE yang ada, buka Cluster, pilih nama cluster Anda, buka Edit, lalu edit Managed Machine Learning Diagnostics di bagian Fitur.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud CLI untuk menyiapkan cluster GKE bagi Diagnostik ML, lihat tanda enable-managed-mldiagnostics di halaman referensi API berikut:

Penginstalan manual

Untuk versi GKE sebelum 1.35.0-gke.3065000, Anda perlu mengonfigurasi cluster GKE secara manual untuk menginstal berikut ini:

  • cert-manager: Prasyarat untuk injection-webhook.
  • injection-webhook: Memberikan metadata yang diperlukan ke SDK. Akselerator ini mendukung beban kerja ML Kubernetes umum, seperti JobSet,RayJob, dan LeaderWorkerSet.
  • connection-operator: Untuk pembuatan profil sesuai permintaan di GKE. Men-deploy connection-operator bersama dengan injection-webhook ke cluster GKE akan menginisialisasi permintaan pembuatan profil ke pod target dengan server pembuatan profil yang berjalan saat Anda memicu pengambilan sesuai permintaan.

Untuk mengetahui informasi selengkapnya tentang penyiapan Google Kubernetes Engine, lihat Mengonfigurasi cluster Google Kubernetes Engine.

Cert-manager

cert-manager bertindak sebagai pengontrol sertifikat untuk cluster Anda, memastikan bahwa aplikasi Anda aman dan masa berlaku sertifikat Anda tidak pernah berakhir secara tidak sengaja.

Gunakan Helm untuk menginstal hal berikut:

helm repo add jetstack https://charts.jetstack.io
helm repo update

helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.13.0 \
  --set installCRDs=true \
  --set global.leaderElection.namespace=cert-manager \
  --timeout 10m

Injection-webhook

injection-webhook meneruskan metadata ke SDK. Gunakan helm upgrade --install untuk menginstal pertama kali atau mengupgrade penginstalan yang ada.

Gunakan Helm untuk menginstal hal berikut:

helm upgrade --install mldiagnostics-injection-webhook \
  --namespace=gke-mldiagnostics \
  --create-namespace \
  --version 0.25.0 \
  oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-injection-webhook

Connection-operator

connection-operator mengaktifkan pembuatan profil sesuai permintaan di GKE. Gunakan tabel berikut untuk menemukan versi mldiagnostics-connection-operator yang benar:

Versi JAX Versi Diagram Helm
0.8.x 0.24.0
0.9.x+ 0.24.0+

Gunakan Helm untuk menginstal versi yang diperlukan.

Untuk JAX 0.8.x:

helm upgrade --install mldiagnostics-connection-operator \
  --namespace=gke-mldiagnostics \
  --create-namespace \
  --version 0.24.0 \
  oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-connection-operator \
  --set 'mldiagnosticsConnectionOperator.controller.args={--metrics-bind-address=:8443,--health-probe-bind-address=:8081,--sidecar-timeout=65m,--disable-hostname-override}'

Untuk JAX 0.9.x+:

helm upgrade --install mldiagnostics-connection-operator \
  --namespace=gke-mldiagnostics \
  --create-namespace \
  --version 0.24.0 \
  oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-connection-operator

Workload label

Untuk pemrofilan terprogram, Anda perlu memicu injection-webhook untuk menyuntikkan metadata ke dalam pod. Beri label pada workload atau namespace-nya dengan managed-mldiagnostics-gke=true sebelum men-deploy workload:

  • Beri label pada workload. Beri label pada workload Jobset, LWS, atau RayJob, yang akan mengaktifkan webhook untuk workload tertentu tersebut. Berikut adalah contoh untuk workload JobSet:

    apiVersion: jobset.x-k8s.io/v1alpha2
    kind: JobSet
    metadata:
      name: single-host-tpu-v3-jobset2
      namespace: default
      labels:
        managed-mldiagnostics-gke: "true"
    
  • Beri label namespace. Tindakan ini akan mengaktifkan webhook untuk semua beban kerja Jobset, LWS, dan RayJob dalam namespace tersebut.

    kubectl create namespace ai-workloads
    kubectl label namespace ai-workloads managed-mldiagnostics-gke=true