Configurare GKE per ML Diagnostics
Se utilizzi Google Kubernetes Engine (GKE) per il tuo workload di machine learning, puoi utilizzare la piattaforma ML Diagnostics in due modi:
- Monitoraggio automatico dei workload e raccolta delle metriche di sistema: per
il monitoraggio automatico dei workload e la raccolta delle metriche di sistema, non è necessario
instrumentare il codice o eseguire configurazioni aggiuntive. Il monitoraggio dei workload e la raccolta delle metriche di sistema sono attivati per impostazione predefinita e non è necessario eseguire i passaggi descritti in questa guida. Il monitoraggio dei workload
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 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 workload dipende dal fatto che tu 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, tramite la Google Cloud console o utilizzando
Terraform. Per saperne di più, consulta Configurare con
gcloud CLI, Google Cloud la console o Terraform.
Per le versioni di GKE precedenti a 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 Installazione manuale.
Configurare con gcloud CLI, la Google Cloud console o Terraform
Per le versioni di GKE successive a 1.35.0-gke.3065000, utilizza uno dei seguenti metodi per eseguire il deployment dei componenti ML Diagnostics richiesti (sia connection-operator che injection-webhook) nel cluster GKE.
gcloud
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
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:
Console
Per i nuovi cluster GKE, vai a Gestione funzionalità > Managed Machine Learning Diagnostics.
Per i cluster GKE esistenti, vai a Cluster, seleziona il nome del tuo cluster, vai a Modifica e modifica Managed Machine Learning Diagnostics in Funzionalità.
Terraform
Se utilizzi Terraform per il provisioning dell'infrastruttura GKE, devi utilizzare la versione del provider terraform-provider-google-beta v7.28.0 o successive.
Per attivare Managed ML Diagnostics su un nuovo cluster utilizzando Terraform, aggiungi il blocco managed_machine_learning_diagnostics_config con enabled = true alla risorsa google_container_cluster:
terraform {
required_providers {
google-beta = {
source = "hashicorp/google-beta"
version = ">= 7.28.0"
}
}
}
resource "google_container_cluster" "primary" {
provider = google-beta
name = "CLUSTER_NAME"
location = "LOCATION"
# ... other cluster configuration ...
managed_machine_learning_diagnostics_config {
enabled = true
}
}
Per attivare Managed ML Diagnostics su un cluster esistente, aggiungi il blocco managed_machine_learning_diagnostics_config alla risorsa google_container_cluster esistente:
resource "google_container_cluster" "primary" {
provider = google-beta
name = "CLUSTER_NAME"
location = "LOCATION"
# ... other cluster configuration ...
managed_machine_learning_diagnostics_config {
enabled = true
}
}
Per disattivare Managed ML Diagnostics su un cluster utilizzando Terraform, imposta enabled = false nel blocco managed_machine_learning_diagnostics_config:
resource "google_container_cluster" "primary" {
provider = google-beta
name = "CLUSTER_NAME"
location = "LOCATION"
# ... other cluster configuration ...
managed_machine_learning_diagnostics_config {
enabled = false
}
}
Dopo aver aggiornato la configurazione, applica le modifiche:
terraform apply
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster.LOCATION: la regione o la zona.
Per saperne di più sull'utilizzo di Terraform con GKE, consulta Supporto di Terraform per GKE.
Installazione manuale
Per le versioni di GKE precedenti a 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 di machine learning 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 saperne di più sulla configurazione di Google Kubernetes Engine, consulta Configurare il cluster Google Kubernetes Engine.
Cert-manager
cert-manager funge da controller dei certificati per il cluster, garantendo che le applicazioni siano sicure e che i 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.
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 abilita la profilazione on demand su GKE. Utilizza la tabella seguente per trovare la versione corretta di mldiagnostics-connection-operator:
| Versione 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:
Etichetta 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à attivato per tutti i workload
Jobset,LWSeRayJoball'interno dello spazio dei nomi.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true