Configurer GKE pour les diagnostics ML

Si vous utilisez Google Kubernetes Engine (GKE) pour votre charge de travail de ML, suivez ce guide pour configurer votre cluster GKE et installer les artefacts GKE requis. Les exigences GKE sont les mêmes, que vous utilisiez gcloud CLI ML Diagnostics et déclenchiez le profilage à la demande à partir de la CLI, ou que vous utilisiez le SDK ML Diagnostics avec votre charge de travail et que vous déployiez sur GKE.

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 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 dans votre cluster GKE.

Pour les nouveaux clusters GKE :

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

Pour les clusters GKE existants :

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

Pour désactiver les diagnostics ML, utilisez la commande suivante :

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

    Accéder à GKE 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 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 pour injection-webhook.
  • injection-webhook : fournit au SDK les métadonnées requises. Il est compatible avec les charges de travail Kubernetes de ML courantes, comme JobSet, RayJob et LeaderWorkerSet.
  • connection-operator : pour le profilage à la demande sur GKE. Le déploiement de connection-operator avec injection-webhook dans le cluster GKE initialisera les requêtes de profilage vers les pods cibles avec les 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 pour passer à la dernière version de injection-webhook afin d'éviter tout temps d'arrêt.

Utilisez Helm pour installer les éléments suivants :

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 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.1-0.8.3 0.14.0
0.9.0 0.16.0

Utilisez Helm pour installer la version requise :

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

Charge de travail d'étiquetage

Pour déclencher l'injection de métadonnées dans les pods par injection-webhook, vous devez étiqueter la charge de travail ou son espace de noms avec managed-mldiagnostics-gke=true avant de déployer la charge de travail :

  • Attribuer un libellé à une charge de travail Ajoutez un libellé à une charge de travail Jobset, LWS ou RayJob pour activer le webhook pour cette charge de travail spécifique. Voici un exemple de charge de travail JobSet :

    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, LWS et RayJob de cet espace de noms.

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