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. Das Workload-Monitoring 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, die Kennzeichnung der Arbeitslast und die Verwendung des ML Diagnostics SDK.
Wenn Sie eine GKE-Version nach
1.35.0-gke.3065000 verwenden, können Sie den GKE-Cluster für ML Diagnostics mit einem
einzigen gcloud CLI-Befehl, über die Google Cloud Console oder mit
Terraform einrichten. Weitere Informationen finden Sie unter Einrichten mit
der gcloud CLI, Google Cloud der Console oder Terraform.
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, Google Cloud der Console oder Terraform einrichten
Bei GKE-Versionen nach 1.35.0-gke.3065000 können Sie eine der folgenden Methoden verwenden, um die erforderlichen ML Diagnostics-Komponenten (sowohl connection-operator als auch injection-webhook) in Ihrem GKE-Cluster bereitzustellen.
gcloud
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
Verwenden Sie Folgendes, um ML Diagnostics zu deaktivieren:
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
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:
Console
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.
Terraform
Wenn Sie Terraform verwenden, um Ihre GKE-Infrastruktur bereitzustellen, können Sie den Anbieter terraform-provider-google-beta (Version v7.28.0 oder höher) oder das Modul terraform-google-modules/kubernetes-engine/google (Version v45.0.0 oder höher) verwenden.
Google Cloud Terraform-Anbieter verwenden
Wenn Sie Managed ML Diagnostics in einem neuen Cluster mit der Ressource google_container_cluster aktivieren möchten, fügen Sie den Block managed_machine_learning_diagnostics_config mit enabled = true mit dem Anbieter google-beta (Version v7.28.0 oder höher) hinzu:
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
}
}
Wenn Sie Managed ML Diagnostics in einem Cluster mit der Terraform-Ressource deaktivieren möchten, legen Sie enabled = false im Block managed_machine_learning_diagnostics_config fest:
resource "google_container_cluster" "primary" {
provider = google-beta
name = "CLUSTER_NAME"
location = "LOCATION"
# ... other cluster configuration ...
managed_machine_learning_diagnostics_config {
enabled = false
}
}
GKE-Terraform-Modul verwenden
Wenn Sie Managed ML Diagnostics in einem Cluster mit dem
terraform-google-modules/kubernetes-engine/google
Modul (z. B. dem beta-public-cluster Untermodul) aktivieren möchten, legen Sie
enable_managed_machine_learning_diagnostics = true fest:
module "gke" {
source = "terraform-google-modules/kubernetes-engine/google//modules/beta-public-cluster"
version = ">= 45.0"
project_id = "PROJECT_ID"
name = "CLUSTER_NAME"
region = "LOCATION"
# ... other cluster configuration ...
enable_managed_machine_learning_diagnostics = true
}
Wenn Sie Managed ML Diagnostics in einem Cluster mit dem Terraform-Modul deaktivieren möchten, legen Sie enable_managed_machine_learning_diagnostics = false fest:
module "gke" {
source = "terraform-google-modules/kubernetes-engine/google//modules/beta-public-cluster"
version = ">= 45.0"
# ... other cluster configuration ...
enable_managed_machine_learning_diagnostics = false
}
Wenden Sie nach der Aktualisierung der Konfiguration die Änderungen an:
terraform apply
Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.CLUSTER_NAME: der Name des Clusters.LOCATION: die Region oder Zone.
Weitere Informationen zur Verwendung von Terraform mit GKE finden Sie unter Terraform-Unterstützung für GKE.
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 von 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 zum ersten Mal zu installieren oder eine vorhandene Installation zu aktualisieren.
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 kennzeichnen
Für die programmatische Profilerstellung müssen Sie die injection-webhook auslösen, um
Metadaten in Pods einzufügen. Kennzeichnen Sie entweder die Arbeitslast oder ihren Namespace mit managed-mldiagnostics-gke=true, bevor Sie die Arbeitslast bereitstellen:
Arbeitslast kennzeichnen. Kennzeichnen 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 kennzeichnen. 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