GKE für ML Diagnostics konfigurieren
Wenn Sie Google Kubernetes Engine (GKE) für Ihre ML-Arbeitslast verwenden, können Sie die ML Diagnostics-Plattform auf zwei Arten nutzen:
- Automatische Arbeitslastüberwachung und Erfassung von Systemmesswerten: Für
die automatische Arbeitslastüberwachung und Erfassung von Systemmesswerten müssen Sie Ihren Code nicht instrumentieren oder zusätzliche Konfigurationen vornehmen. Die Arbeitslastüberwachung und die Erfassung von Systemmesswerten sind standardmäßig aktiviert. Sie müssen die Schritte in dieser Anleitung nicht ausführen. Die Arbeitslastüberwachung
unterstützt die
jobsetundjobGKE-Jobtypen und ist mit GKE-Versionen ab 1.36.0-gke.4681000 kompatibel. - ML Diagnostics SDK und On-Demand-Profilerstellung: Wenn Sie das ML Diagnostics SDK verwenden und On-Demand-Profilerstellung durchführen möchten, konfigurieren Sie Ihren GKE-Cluster mit dieser Anleitung und installieren Sie die erforderlichen GKE-Artefakte.
Die Konfiguration Ihrer Arbeitslast hängt davon ab, ob Sie On-Demand- Profilerstellung oder programmatische Profilerstellung verwenden.
- On-Demand-Profilerstellung: Erfordert die Installation von
connection-operator. - Programmatische Profilerstellung: Erfordert die Installation von
injection-webhook, das Labeln der Arbeitslast und die Verwendung des ML Diagnostics SDK.
Wenn Sie eine GKE-Version verwenden, die neuer als 1.35.0-gke.3065000 ist, können Sie den GKE-Cluster mit einem einzigen gcloud CLI-Befehl für ML Diagnostics 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:
Für neue GKE-Cluster rufen Sie Feature Manager > Managed Machine Learning Diagnostics auf.
Für vorhandene GKE-Cluster rufen Sie Cluster auf, wählen Sie den Namen Ihres Clusters aus, klicken Sie auf Bearbeiten und bearbeiten Sie Managed Machine Learning Diagnostics unter Features.
Weitere Informationen zu gcloud CLI-Befehlen zum Einrichten eines GKE-Cluster für ML Diagnostics finden Sie im Flag enable-managed-mldiagnostics auf den folgenden API-Referenzseiten:
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ürinjection-webhook.injection-webhook: Stellt dem SDK die erforderlichen Metadaten zur Verfügung. Es unterstützt gängige ML-Kubernetes-Arbeitslasten wieJobSet,RayJobundLeaderWorkerSet.connection-operator: Für die On-Demand-Profilerstellung in GKE. Wenn Sieconnection-operatorzusammen mitinjection-webhookim GKE-Cluster bereitstellen, werden Profilerstellungsanfragen an Pods mit Profilerstellungsservern weitergeleitet, wenn Sie die On-Demand-Erfassung auslösen.
Weitere Informationen zum Einrichten für Google Kubernetes Engine finden Sie unter Google Kubernetes Engine Cluster konfigurieren.
cert-manager
cert-manager fungiert als Zertifikatcontroller für Ihren Cluster und sorgt dafür, dass Ihre Anwendungen sicher sind und Ihre Zertifikate nicht versehentlich 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, um es zum ersten Mal zu installieren oder eine vorhandene Installation zu aktualisieren.
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
connection-operator
connection-operator ermöglicht die On-Demand-Profilerstellung in GKE. In der folgenden Tabelle finden Sie die richtige Version von mldiagnostics-connection-operator:
| 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 die 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- oderRayJob-Arbeitslast. Dadurch wird der Webhook für diese bestimmte Arbeitslast aktiviert. Das folgende Beispiel zeigt eineJobSet-Arbeitslast:apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"Namespace labeln. Dadurch wird der Webhook für alle
Jobset-,LWS- undRayJob-Arbeitslasten in diesem Namespace aktiviert.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true