Configura GKE per ML Diagnostics

Se utilizzi Google Kubernetes Engine (GKE) per il tuo workload ML, utilizza questa guida per configurare il cluster GKE e installare gli artefatti GKE richiesti. I requisiti di GKE sono gli stessi indipendentemente dal fatto che utilizzi gcloud CLI di ML Diagnostics e attivi la profilazione on demand dalla CLI o utilizzi l'SDK ML Diagnostics con il tuo workload ed esegui il deployment su GKE.

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 ulteriori informazioni, consulta 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 nel tuo cluster GKE.

Per i nuovi cluster GKE:

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

Per i cluster GKE esistenti:

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

Per disattivare ML Diagnostics, utilizza quanto segue:

gcloud 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.

    Vai a GKE Managed Machine Learning Diagnostics

  • 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 per injection-webhook.
  • injection-webhook: fornisce all'SDK i metadati richiesti. Supporta i workload Kubernetes ML comuni, come JobSet,RayJob e LeaderWorkerSet.
  • connection-operator: Per la profilazione on demand su GKE. Il deployment di connection-operator insieme a injection-webhook nel 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 per eseguire l'aggiornamento all'ultima versione di injection-webhook per assicurarti che non si verifichi alcun tempo di inattività.

Utilizza Helm per installare quanto segue:

helm install mldiagnostics-injection-webhook \
   --namespace=gke-mldiagnostics \
   --create-namespace \
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.1-0.8.3 0.14.0
0.9.0 0.16.0

Utilizza Helm per installare la versione richiesta:

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

Carico di lavoro dell'etichetta

Per attivare injection-webhook per inserire i metadati nei pod, devi etichettare il carico di lavoro o il relativo spazio dei nomi con managed-mldiagnostics-gke=true prima di eseguire il deployment del carico di lavoro:

  • Etichettare un workload. Etichetta un workload Jobset, LWS o RayJob, che attiverà il webhook per quel workload specifico. Di seguito è riportato un esempio per un workload JobSet:

    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, LWS e RayJob all'interno di questo spazio dei nomi.

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