Mengonfigurasi GKE untuk ML Diagnostics
Jika Anda menggunakan Google Kubernetes Engine (GKE) untuk workload ML, Anda dapat menggunakan platform ML Diagnostics dengan dua cara:
- Pemantauan workload otomatis dan pengumpulan metrik sistem: Untuk
pemantauan workload otomatis dan pengumpulan metrik sistem, Anda tidak perlu
menginstrumentasi kode atau melakukan konfigurasi tambahan. Pemantauan workload dan pengumpulan metrik sistem diaktifkan secara default, dan Anda tidak diwajibkan untuk melakukan langkah-langkah dalam panduan ini. Pemantauan workload
mendukung jenis tugas GKE
jobsetdanjob, serta kompatibel dengan GKE versi 1.36.0-gke.4681000 dan yang lebih baru. - ML Diagnostics SDK dan pembuatan profil sesuai permintaan: Jika Anda ingin menggunakan ML Diagnostics SDK dan melakukan pembuatan profil sesuai permintaan, gunakan panduan ini untuk mengonfigurasi cluster GKE dan menginstal artefak GKE yang diperlukan.
Konfigurasi workload Anda bergantung pada apakah Anda menggunakan pembuatan profil sesuai permintaan atau pembuatan profil terprogram.
- Pembuatan profil sesuai permintaan: Memerlukan Anda untuk menginstal
connection-operator. - Pembuatan profil terprogram: Memerlukan Anda untuk menginstal
injection-webhook, memberi label pada workload dan menggunakan ML Diagnostics SDK.
Jika Anda menggunakan GKE versi yang lebih baru dari
1.35.0-gke.3065000, Anda dapat menyiapkan cluster GKE untuk ML Diagnostics dengan
satu perintah gcloud CLI, melalui Google Cloud konsol, atau menggunakan
Terraform. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan dengan
gcloud CLI, Google Cloud konsol, atau Terraform.
Untuk GKE versi sebelum 1.35.0-gke.3065000, Anda harus mengonfigurasi cluster GKE secara manual untuk menginstal artefak cert-manager, injection-webhook, dan connection-operator. Untuk mengetahui informasi selengkapnya,
lihat Penginstalan manual.
Menyiapkan dengan gcloud CLI, Google Cloud konsol, atau Terraform
Untuk GKE versi yang lebih baru dari 1.35.0-gke.3065000, gunakan salah satu metode berikut untuk men-deploy komponen ML Diagnostics yang diperlukan (connection-operator dan injection-webhook) ke cluster GKE Anda.
gcloud
Untuk cluster GKE baru:
gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics
Untuk cluster GKE yang ada:
gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics
Untuk menonaktifkan ML Diagnostics, gunakan perintah berikut:
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
Untuk mengetahui informasi selengkapnya tentang perintah gcloud CLI untuk menyiapkan cluster GKE untuk ML Diagnostics, lihat flag enable-managed-mldiagnostics di halaman referensi API berikut:
Konsol
Untuk cluster GKE baru, buka Feature Manager > Managed Machine Learning Diagnostics.
Untuk cluster GKE yang ada, buka Clusters, pilih nama cluster Anda, buka Edit, lalu edit Managed Machine Learning Diagnostics di bagian Features.
Terraform
Jika Anda menggunakan Terraform untuk menyediakan infrastruktur GKE, Anda dapat menggunakan penyedia terraform-provider-google-beta (versi v7.28.0 atau yang lebih baru), atau modul terraform-google-modules/kubernetes-engine/google (versi v45.0.0 atau yang lebih baru).
Menggunakan penyedia Google Cloud Terraform
Untuk mengaktifkan ML Diagnostics Terkelola di cluster baru menggunakan resource google_container_cluster, tambahkan blok managed_machine_learning_diagnostics_config dengan enabled = true menggunakan penyedia google-beta (versi v7.28.0 atau yang lebih baru):
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
}
}
Untuk menonaktifkan ML Diagnostics Terkelola di cluster menggunakan resource Terraform, tetapkan enabled = false di blok managed_machine_learning_diagnostics_config:
resource "google_container_cluster" "primary" {
provider = google-beta
name = "CLUSTER_NAME"
location = "LOCATION"
# ... other cluster configuration ...
managed_machine_learning_diagnostics_config {
enabled = false
}
}
Menggunakan modul Terraform GKE
Untuk mengaktifkan ML Diagnostics Terkelola di cluster menggunakan
terraform-google-modules/kubernetes-engine/google
modul (seperti submodule beta-public-cluster), tetapkan
enable_managed_machine_learning_diagnostics = true:
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
}
Untuk menonaktifkan ML Diagnostics Terkelola di cluster menggunakan modul Terraform, tetapkan enable_managed_machine_learning_diagnostics = false:
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
}
Setelah memperbarui konfigurasi, terapkan perubahan:
terraform apply
Ganti kode berikut:
PROJECT_ID: nama project.CLUSTER_NAME: nama cluster.LOCATION: region atau zona.
Untuk mempelajari lebih lanjut cara menggunakan Terraform dengan GKE, lihat Dukungan Terraform untuk GKE.
Penginstalan manual
Untuk GKE versi sebelum 1.35.0-gke.3065000, Anda harus mengonfigurasi cluster GKE secara manual untuk menginstal hal berikut:
cert-manager: Prasyarat untukinjection-webhook.injection-webhook: Memberikan metadata yang diperlukan ke SDK. Webhook ini mendukung workload Kubernetes ML umum, sepertiJobSet,RayJob, danLeaderWorkerSet.connection-operator: Untuk pembuatan profil sesuai permintaan di GKE. Men-deployconnection-operatorbersama denganinjection-webhookke cluster GKE akan menginisialisasi permintaan pembuatan profil untuk menargetkan pod dengan server pembuatan profil yang berjalan saat Anda memicu pengambilan sesuai permintaan.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan Google Kubernetes Engine, lihat Mengonfigurasi Google Kubernetes Engine cluster.
Cert-manager
cert-manager bertindak sebagai pengontrol sertifikat untuk cluster Anda, memastikan bahwa aplikasi Anda aman dan sertifikat Anda tidak akan kedaluwarsa tanpa disengaja.
Gunakan Helm untuk menginstal hal berikut:
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 meneruskan metadata ke SDK. Gunakan helm upgrade --install untuk menginstal pertama kalinya atau mengupgrade penginstalan yang ada.
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 memungkinkan pembuatan profil sesuai permintaan di GKE. Gunakan tabel berikut untuk menemukan versi mldiagnostics-connection-operator yang benar:
| Versi JAX | Versi Diagram Helm |
|---|---|
| 0.8.x | 0.24.0 |
| 0.9.x+ | 0.24.0+ |
Gunakan Helm untuk menginstal versi yang diperlukan.
Untuk 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}'
Untuk 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
Memberi label pada workload
Untuk pembuatan profil terprogram, Anda harus memicu injection-webhook untuk
menyuntikkan metadata ke dalam pod. Beri label pada workload atau namespace-nya dengan managed-mldiagnostics-gke=true sebelum men-deploy workload:
Memberi label pada workload. Beri label pada workload
Jobset,LWS, atauRayJob, yang akan mengaktifkan webhook untuk workload tertentu tersebut. Berikut adalah contoh untuk workloadJobSet:apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"Memberi label pada namespace. Tindakan ini akan mengaktifkan webhook untuk semua workload
Jobset,LWS, danRayJobdalam namespace tersebut.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true