Configurer GKE pour ML Diagnostics
Si vous utilisez Google Kubernetes Engine (GKE) pour votre charge de travail de ML, vous pouvez utiliser la plate-forme ML Diagnostics de deux manières :
- Surveillance automatique des charges de travail et collecte des métriques système : pour la surveillance automatique des charges de travail et la collecte des métriques système, vous n'avez pas besoin d'instrumenter votre code ni d'effectuer de configuration supplémentaire. La surveillance des charges de travail et la collecte des métriques système sont activées par défaut. Vous n'avez pas besoin de suivre les étapes de ce guide. La surveillance des charges de travail est compatible avec les types de jobs GKE
jobsetetjob, ainsi qu'avec les versions GKE 1.36.0-gke.4681000 et ultérieures. - SDK ML Diagnostics et profilage à la demande : si vous souhaitez utiliser le SDK ML Diagnostics et effectuer un profilage à la demande, suivez ce guide pour configurer votre cluster GKE et installer les artefacts GKE requis.
La configuration de votre charge de travail dépend de l'utilisation du profilage à la demande ou du profilage programmatique.
- Profilage à la demande : vous devez installer
connection-operator. - Profilage programmatique : nécessite l'installation de
injection-webhook, l'étiquetage de la charge de travail et l'utilisation du SDK ML Diagnostics.
Si vous utilisez une version de GKE ultérieure à 1.35.0-gke.3065000, vous pouvez configurer un cluster GKE pour les diagnostics ML avec une seule commande de la gcloud CLI. Pour en savoir plus, consultez Configurer avec gcloud CLI.
Pour les versions de GKE antérieures à 1.35.0-gke.3065000, vous devez configurer manuellement le cluster GKE pour installer les artefacts cert-manager, injection-webhook et connection-operator. Pour en savoir plus, consultez Installation manuelle.
Configurer avec gcloud CLI
Pour les versions de GKE ultérieures à 1.35.0-gke.3065000, utilisez l'une des commandes gcloud CLI suivantes pour déployer les composants ML Diagnostics requis (connection-operator et injection-webhook) dans votre cluster GKE.
Pour les nouveaux clusters GKE :
gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics
Pour les clusters GKE existants :
gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics
Pour désactiver les diagnostics ML, utilisez la commande suivante :
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
Vous pouvez également activer les commandes gcloud CLI via la console Google Cloud GKE :
Pour les nouveaux clusters GKE, accédez à Gestionnaire de fonctionnalités > Managed Machine Learning Diagnostics.
Pour les clusters GKE existants, accédez à Clusters, sélectionnez le nom de votre cluster, accédez à Modifier, puis modifiez Diagnostics de machine learning géré sous Fonctionnalités.
Pour en savoir plus sur les commandes gcloud CLI permettant de configurer un cluster GKE pour ML Diagnostics, consultez l'indicateur enable-managed-mldiagnostics dans les pages de documentation de référence de l'API suivantes :
Installation manuelle
Pour les versions de GKE antérieures à 1.35.0-gke.3065000, vous devez configurer manuellement le cluster GKE pour installer les éléments suivants :
cert-manager: condition requise pourinjection-webhook.injection-webhook: fournit au SDK les métadonnées requises. Il est compatible avec les charges de travail Kubernetes de ML courantes, commeJobSet,RayJobetLeaderWorkerSet.connection-operator: pour le profilage à la demande sur GKE. Le déploiement deconnection-operatoravecinjection-webhookdans le cluster GKE initialisera les requêtes de profilage pour cibler les pods avec des serveurs de profilage en cours d'exécution lorsque vous déclencherez la capture à la demande.
Pour en savoir plus sur la configuration de Google Kubernetes Engine, consultez Configurer un cluster Google Kubernetes Engine.
Cert-manager
cert-manager fait office de contrôleur de certificat pour votre cluster, ce qui garantit la sécurité de vos applications et évite l'expiration involontaire de vos certificats.
Utilisez Helm pour installer les éléments suivants :
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 transmet les métadonnées au SDK. Utilisez helm upgrade --install pour installer le package pour la première fois ou mettre à niveau une installation existante.
Utilisez Helm pour installer les éléments suivants :
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 permet le profilage à la demande sur GKE. Consultez le tableau ci-dessous pour trouver la version mldiagnostics-connection-operator appropriée :
| Version JAX | Version du chart Helm |
|---|---|
| 0.8.x | 0.24.0 |
| 0.9.x+ | 0.24.0+ |
Utilisez Helm pour installer la version requise.
Pour 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}'
Pour JAX 0.9.x et versions ultérieures :
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
Charge de travail d'étiquetage
Pour le profilage programmatique, vous devez déclencher injection-webhook pour injecter des métadonnées dans les pods. Avant de déployer la charge de travail, ajoutez le libellé managed-mldiagnostics-gke=true à la charge de travail ou à son espace de noms :
Attribuer un libellé à une charge de travail Ajoutez un libellé à une charge de travail
Jobset,LWSouRayJobpour activer le webhook pour cette charge de travail spécifique. Voici un exemple de charge de travailJobSet:apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"Ajoutez un libellé à un espace de noms. Cela activera le webhook pour toutes les charges de travail
Jobset,LWSetRayJobde cet espace de noms.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true