GKE für ML Diagnostics konfigurieren

Wenn Sie Google Kubernetes Engine (GKE) für Ihre ML-Arbeitslast verwenden, können Sie in diesem Leitfaden nachlesen, wie Sie Ihren GKE-Cluster konfigurieren und die erforderlichen GKE-Artefakte installieren.

Die Konfiguration Ihrer Arbeitslast hängt davon ab, ob Sie On-Demand-Profiling oder programmatisches Profiling verwenden.

  • On-Demand-Profilerstellung: Hierfür müssen Sie connection-operator installieren.
  • Programmatische Profilerstellung: Hierfür müssen Sie injection-webhook installieren, die Arbeitslast kennzeichnen und das ML Diagnostics SDK verwenden.

Wenn Sie eine GKE-Version verwenden, die neuer als 1.35.0-gke.3065000 ist, können Sie den GKE-Cluster für ML Diagnostics mit einem einzigen gcloud CLI-Befehl einrichten. Weitere Informationen finden Sie unter Mit der gcloud CLI einrichten.

Bei GKE-Versionen vor 1.35.0-gke.3065000 müssen Sie den GKE-Cluster manuell konfigurieren, um die Artefakte cert-manager, injection-webhook und connection-operator zu installieren. Weitere Informationen finden Sie unter Manuelle Installation.

Mit der gcloud CLI einrichten

Verwenden Sie für GKE-Versionen nach 1.35.0-gke.3065000 einen der folgenden gcloud CLI-Befehle, um die erforderlichen ML Diagnostics-Komponenten (sowohl connection-operator als auch injection-webhook) in Ihrem GKE-Cluster bereitzustellen.

Für neue GKE-Cluster:

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

Für vorhandene GKE-Cluster:

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

So deaktivieren Sie ML Diagnostics:

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

Sie können die gcloud CLI-Befehle auch über die GKE Google Cloud Console aktivieren:

  • Bei neuen GKE-Clustern rufen Sie Feature Manager > Managed Machine Learning Diagnostics auf.

    Zu GKE Managed Machine Learning Diagnostics

  • Rufen Sie für vorhandene GKE-Cluster Cluster auf, wählen Sie den Namen Ihres Clusters aus, klicken Sie auf Bearbeiten und bearbeiten Sie Verwaltete Machine Learning-Diagnose unter Funktionen.

Weitere Informationen zu gcloud CLI-Befehlen zum Einrichten eines GKE-Cluster für ML Diagnostics finden Sie auf den folgenden API-Referenzseiten unter dem Flag enable-managed-mldiagnostics:

Manuelle Installation

Bei GKE-Versionen vor 1.35.0-gke.3065000 müssen Sie den GKE-Cluster manuell konfigurieren, um Folgendes zu installieren:

  • cert-manager: Eine Voraussetzung für injection-webhook.
  • injection-webhook: Stellt dem SDK die erforderlichen Metadaten zur Verfügung. Es unterstützt gängige ML-Kubernetes-Arbeitslasten wie JobSet, RayJob und LeaderWorkerSet.
  • connection-operator: Für On-Demand-Profiling in GKE. Wenn Sie connection-operator zusammen mit injection-webhook im GKE-Cluster bereitstellen, werden Profiling-Anfragen an Ziel-Pods mit Profiling-Servern initialisiert, wenn Sie die On-Demand-Erfassung auslösen.

Weitere Informationen zur Einrichtung für Google Kubernetes Engine finden Sie unter Google Kubernetes Engine-Cluster konfigurieren.

Cert-manager

cert-manager fungiert als Zertifikatscontroller für Ihren Cluster und sorgt dafür, dass Ihre Anwendungen sicher sind und Ihre Zertifikate nicht unbeabsichtigt ablaufen.

Installieren Sie Folgendes mit Helm:

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 übergibt Metadaten an das SDK. Verwenden Sie helm upgrade --install für die Erstinstallation oder für das Upgrade einer vorhandenen Installation.

Installieren Sie Folgendes mit Helm:

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

Verbindungsoperator

connection-operator ermöglicht On-Demand-Profiling in GKE. In der folgenden Tabelle finden Sie die richtige mldiagnostics-connection-operator-Version:

JAX-Version Helm-Diagrammversion
0.8.x 0.24.0
0.9.x+ 0.24.0+

Installieren Sie die erforderliche Version mit Helm.

Für 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}'

Für 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

Arbeitslast labeln

Für die programmatische Profilerstellung müssen Sie den injection-webhook auslösen, um Metadaten in Pods einzufügen. Labeln Sie entweder die Arbeitslast oder ihren Namespace mit managed-mldiagnostics-gke=true, bevor Sie die Arbeitslast bereitstellen:

  • Arbeitslast labeln Labeln Sie eine Jobset-, LWS- oder RayJob-Arbeitslast, um den Webhook für diese bestimmte Arbeitslast zu aktivieren. Hier ist ein Beispiel für eine JobSet-Arbeitslast:

    apiVersion: jobset.x-k8s.io/v1alpha2
    kind: JobSet
    metadata:
      name: single-host-tpu-v3-jobset2
      namespace: default
      labels:
        managed-mldiagnostics-gke: "true"
    
  • Namespace mit einem Label versehen Dadurch wird der Webhook für alle Jobset-, LWS- und RayJob-Arbeitslasten in diesem Namespace aktiviert.

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