Configura GKE per ML Diagnostics
Se utilizzi Google Kubernetes Engine (GKE) per il tuo carico di lavoro ML, puoi utilizzare la piattaforma ML Diagnostics in due modi:
- Monitoraggio automatico del workload e raccolta delle metriche di sistema: per
il monitoraggio automatico del workload e la raccolta delle metriche di sistema, non è necessario
strumentare il codice o eseguire configurazioni aggiuntive. Il monitoraggio del carico di lavoro
e la raccolta delle metriche di sistema sono attivati per impostazione predefinita e non è necessario eseguire i passaggi descritti in questa guida. Il monitoraggio del carico di lavoro
supporta i tipi di job GKE
jobsetejobed è compatibile con le versioni di GKE 1.36.0-gke.4681000 e successive. - SDK ML Diagnostics e profilazione on demand: se vuoi utilizzare l'SDK ML Diagnostics ed eseguire la profilazione on demand, utilizza questa guida per configurare il cluster GKE e installare gli artefatti GKE richiesti.
La configurazione del carico di lavoro dipende dal fatto che utilizzi la profilazione on demand o la profilazione programmatica.
- Profilazione on demand: richiede l'installazione di
connection-operator. - Profilazione programmatica: richiede l'installazione di
injection-webhook, l'etichettatura del workload e l'utilizzo dell'SDK ML Diagnostics.
Se utilizzi una versione di GKE successiva a 1.35.0-gke.3065000, puoi configurare il cluster GKE per ML Diagnostics con un singolo comando gcloud CLI. Per saperne di più, consulta Configurazione con gcloud CLI.
Per le versioni di GKE precedenti alla 1.35.0-gke.3065000, devi
configurare manualmente il cluster GKE per installare gli artefatti cert-manager,
injection-webhook e connection-operator. Per saperne di più,
consulta la sezione Installazione manuale.
Configura con gcloud CLI
Per le versioni di GKE successive alla 1.35.0-gke.3065000, utilizza uno dei seguenti comandi gcloud CLI per eseguire il deployment dei componenti ML Diagnostics richiesti (connection-operator e injection-webhook) nel tuo cluster GKE.
Per i nuovi cluster GKE:
gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics
Per i cluster GKE esistenti:
gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics
Per disattivare ML Diagnostics, utilizza quanto segue:
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
Puoi anche abilitare i comandi gcloud CLI tramite la console Google Cloud GKE:
Per i nuovi cluster GKE, vai a Gestore funzionalità > Diagnostica di machine learning gestito.
Per i cluster GKE esistenti, vai a Cluster, seleziona il nome del cluster, vai a Modifica e modifica Diagnostica di Managed Machine Learning in Funzionalità.
Per saperne di più sui comandi gcloud CLI per configurare un cluster GKE per ML Diagnostics, consulta il flag enable-managed-mldiagnostics nelle seguenti pagine di riferimento dell'API:
Installazione manuale
Per le versioni di GKE precedenti alla 1.35.0-gke.3065000, devi
configurare manualmente il cluster GKE per installare quanto segue:
cert-manager: un prerequisito perinjection-webhook.injection-webhook: fornisce all'SDK i metadati richiesti. Supporta i workload Kubernetes ML comuni, comeJobSet,RayJobeLeaderWorkerSet.connection-operator: Per la profilazione on demand su GKE. Il deployment diconnection-operatorinsieme ainjection-webhooknel cluster GKE inizializzerà le richieste di profilazione per i pod di destinazione con i server di profilazione in esecuzione quando attivi l'acquisizione on demand.
Per ulteriori informazioni sulla configurazione per Google Kubernetes Engine, consulta Configura il cluster Google Kubernetes Engine.
Cert-manager
cert-manager funge da controller dei certificati per il tuo cluster, garantendo
che le tue applicazioni siano sicure e che i tuoi certificati non
scadano mai involontariamente.
Utilizza Helm per installare quanto segue:
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 passa i metadati all'SDK. Utilizza helm upgrade --install
per installare per la prima volta o eseguire l'upgrade di un'installazione esistente.
Utilizza Helm per installare quanto segue:
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 consente la profilazione on demand su GKE. Utilizza la tabella
seguente per trovare la versione corretta di mldiagnostics-connection-operator:
| Versione di JAX | Versione del grafico Helm |
|---|---|
| 0.8.x | 0.24.0 |
| 0.9.x+ | 0.24.0+ |
Utilizza Helm per installare la versione richiesta.
Per 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}'
Per 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
Etichettare il workload
Per la profilazione programmatica, devi attivare injection-webhook per
inserire i metadati nei pod. Etichetta il workload o il relativo spazio dei nomi con
managed-mldiagnostics-gke=true prima di eseguire il deployment del workload:
Etichettare un workload. Etichetta un workload
Jobset,LWSoRayJob, che attiverà il webhook per quel workload specifico. Di seguito è riportato un esempio per un workloadJobSet:apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"Etichetta uno spazio dei nomi. In questo modo, il webhook verrà abilitato per tutti i workload
Jobset,LWSeRayJoball'interno di questo spazio dei nomi.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true