הגדרת GKE ל-ML Diagnostics
אם אתם משתמשים ב-Google Kubernetes Engine (GKE) לעומס העבודה של ה-ML, תוכלו להשתמש במדריך הזה כדי להגדיר את אשכול GKE ולהתקין את הארטיפקטים הנדרשים של GKE.
ההגדרה של עומס העבודה תלויה בשימוש בפרופילים לפי דרישה או בפרופילים באמצעות תוכנה.
- יצירת פרופיל לפי דרישה: נדרשת התקנה של
connection-operator. - יצירת פרופיל באופן פרוגרמטי: נדרשת התקנה של
injection-webhook, הוספת תווית לעומס העבודה ושימוש ב-ML Diagnostics SDK.
אם אתם משתמשים בגרסה של GKE שחדשה יותר מ-1.35.0-gke.3065000, אתם יכולים להגדיר אשכול GKE ל-ML Diagnostics באמצעות פקודה אחת של ה-CLI של gcloud. מידע נוסף מופיע במאמר הגדרה באמצעות ה-CLI של gcloud.
בגרסאות GKE שקודמות לגרסה 1.35.0-gke.3065000, צריך להגדיר ידנית את אשכול GKE כדי להתקין את ארטיפקטים cert-manager, injection-webhook ו-connection-operator. מידע נוסף זמין במאמר בנושא התקנה ידנית.
הגדרה באמצעות ה-CLI של gcloud
בגרסאות GKE מאוחרות יותר מ-1.35.0-gke.3065000, משתמשים באחת מהפקודות הבאות של ה-CLI של gcloud כדי לפרוס את הרכיבים הנדרשים של ML Diagnostics (גם connection-operator וגם injection-webhook) באשכול GKE.
באשכולות GKE חדשים:
gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics
באשכולות GKE קיימים:
gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics
כדי להשבית את התכונה 'ניתוח ביצועים מבוסס-ML', משתמשים בפקודה הבאה:
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
אפשר גם להפעיל את הפקודות של ה-CLI של gcloud דרך מסוף GKE Google Cloud :
לגבי אשכולות GKE חדשים, עוברים אל Feature Manager > Managed Machine Learning Diagnostics.
במקרה של אשכולות GKE קיימים, עוברים אל Clusters, בוחרים את שם האשכול, עוברים אל Edit ועורכים את Managed Machine Learning Diagnostics בקטע Features.
למידע נוסף על פקודות ה-CLI של gcloud להגדרת אשכול GKE ל-ML Diagnostics, אפשר לעיין בדגל enable-managed-mldiagnostics בדפי הפניית ה-API הבאים:
התקנה ידנית
בגרסאות GKE שקודמות לגרסה 1.35.0-gke.3065000, צריך להגדיר ידנית את אשכול GKE כדי להתקין את הרכיבים הבאים:
-
cert-manager: דרישה מוקדמת ל-injection-webhook. -
injection-webhook: מספק ל-SDK את המטא-נתונים הנדרשים. הוא תומך בעומסי עבודה נפוצים של ML Kubernetes, כמוJobSet,RayJobו-LeaderWorkerSet. -
connection-operator: לשימוש בפרופילים לפי דרישה ב-GKE. פריסה שלconnection-operatorיחד עםinjection-webhookבאשכול GKE תגרום לאתחול של בקשות פרופיל ל-Pods עם שרתי פרופיל שפועלים כשמפעילים לכידה לפי דרישה.
מידע נוסף על הגדרת Google Kubernetes Engine זמין במאמר הגדרת אשכול Google Kubernetes Engine.
Cert-manager
cert-manager פועל כבקר האישורים של האשכול, כדי לוודא שהאפליקציות מאובטחות ושהתוקף של האישורים לא יפוג בטעות.
משתמשים ב-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 מעביר מטא-נתונים אל ה-SDK. אפשר להשתמש ב-helm upgrade --install כדי להתקין בפעם הראשונה או לשדרג התקנה קיימת.
משתמשים ב-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 מאפשר יצירת פרופילים לפי דרישה ב-GKE. כדי למצוא את הגרסה הנכונה של mldiagnostics-connection-operator, אפשר להיעזר בטבלה הבאה:
| גרסת JAX | גרסת תרשים Helm |
|---|---|
| 0.8.x | 0.24.0 |
| 0.9.x+ | 0.24.0+ |
משתמשים ב-Helm כדי להתקין את הגרסה הנדרשת.
ב-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}'
ב-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
תווית עומס העבודה
כדי לבצע פרופיל פרוגרמטי, צריך להפעיל את injection-webhook כדי להחדיר מטא-נתונים ל-Pods. לפני שמבצעים פריסה של עומס העבודה, צריך להוסיף את התווית managed-mldiagnostics-gke=true לעומס העבודה או למרחב השמות שלו:
תיוג של עומס עבודה. נותנים תווית לעומס עבודה (workload) מסוג
Jobset,LWSאוRayJob, וכך מפעילים את ה-webhook עבור עומס העבודה הספציפי הזה. זו דוגמה לעומס עבודהJobSet:apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"הוספת תווית למרחב שמות הפעולה הזו תפעיל את ה-webhook לכל עומסי העבודה של
Jobset, LWSו-RayJobבמרחב השמות הזה.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true