אם באשכול יש צמתים שמשתמשים ביחידות GPU של NVIDIA, אפשר לעקוב אחרי ניצול ה-GPU, הביצועים והתקינות על ידי הגדרת האשכול לשליחת מדדים של NVIDIA Data Center GPU Manager (DCGM) ל-Cloud Monitoring. בפתרון הזה נעשה שימוש בשירות המנוהל של Google Cloud ל-Prometheus כדי לאסוף מדדים מ-NVIDIA DCGM.
הדף הזה מיועד לאדמינים ולמפעילים בתחום ה-IT שמנהלים את מחזור החיים של תשתית טכנולוגית בסיסית. מידע נוסף על תפקידים נפוצים ועל דוגמאות למשימות שאנחנו מתייחסים אליהן בתוכן זמין במאמר תפקידי משתמשים ומשימות נפוצים ב-GKE. Google Cloud
לפני שמתחילים
כדי להשתמש בשירות מנוהל של Google Cloud ל-Prometheus כדי לאסוף מדדים מ-DCGM, הפריסה של Google Distributed Cloud צריכה לעמוד בדרישות הבאות:
צריך לוודא שכלי NVIDIA DCGM-Exporter כבר מותקן באשכול. DCGM-Exporter מותקן כשמבצעים התקנה של NVIDIA GPU Operator. הוראות להתקנת NVIDIA GPU Operator מופיעות במאמר התקנה ואימות של NVIDIA GPU Operator.
צריך להפעיל את השירות המנוהל של Google Cloud ל-Prometheus. הוראות מפורטות זמינות במאמר בנושא הפעלת השירות המנוהל של Google Cloud ל-Prometheus.
הגדרת משאב PodMonitoring
מגדירים משאב PodMonitoring בשירות המנוהל של Google Cloud ל-Prometheus כדי לאסוף את המדדים המיוצאים. אם נתקלתם בבעיה בהתקנת אפליקציה או כלי לייצוא בגלל מדיניות אבטחה או מדיניות ארגונית מגבילה, מומלץ לעיין במסמכי קוד פתוח לקבלת תמיכה.
כדי להטמיע את נתוני המדדים שמופקים על ידי DCGM Exporter Pod (nvidia-dcgm-exporter), השירות המנוהל של Google Cloud ל-Prometheus משתמש בגירוד של יעדים. הגדרת ה-scraping של נתוני היעד וההטמעה של המדדים מתבצעת באמצעות משאבים מותאמים אישית של Kubernetes.
השירות המנוהל משתמש במשאבים מותאמים אישית של PodMonitoring.
משאב מותאם אישית מסוג PodMonitoring מבצע גירוד של יעדים במרחב השמות שבו הוא נפרס בלבד. כדי לבצע סקריפינג של יעדים בכמה מרחבי שמות, צריך לפרוס את אותו משאב מותאם אישית של PodMonitoring בכל מרחב שמות.
יוצרים קובץ מניפסט עם ההגדרות הבאות:
הקטע
selectorבמניפסט מציין שה-DCGM Exporter Pod,nvidia-dcgm-exporter, נבחר למעקב. ה-Pod הזה נפרס כשמתקינים את NVIDIA GPU Operator.apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: dcgm-gmp spec: selector: matchLabels: app: nvidia-dcgm-exporter endpoints: - port: metrics interval: 30sפורסים את המשאב המותאם אישית PodMonitoring:
kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIGמחליפים את מה שכתוב בשדות הבאים:
NAMESPACE: מרחב השמות שבו אתם פורסים את המשאב המותאם אישית PodMonitoring.
FILENAME: הנתיב של קובץ המניפסט של המשאב המותאם אישית PodMonitoring.
KUBECONFIG: הנתיב לקובץ kubeconfig של האשכול.
כדי לוודא שהמשאב המותאם אישית PodMonitoring מותקן במרחב השמות הרצוי, מריצים את הפקודה הבאה:
kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIGהפלט אמור להיראות כך:
NAME AGE dcgm-gmp 3m37s
אימות ההגדרה
אתם יכולים להשתמש ב-Metrics Explorer כדי לוודא שהגדרתם את הכלי DCGM exporter בצורה נכונה. יכול להיות שיחלפו דקה או שתיים עד שמדדים ייקלטו ב-Cloud Monitoring.
כדי לוודא שהמדדים נאספים, מבצעים את הפעולות הבאות:
-
במסוף Google Cloud , עוברים לדף leaderboard Metrics explorer:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
משתמשים בשפת השאילתות של Prometheus (PromQL) כדי לציין את הנתונים שיוצגו בתרשים:
בסרגל הכלים של החלונית query-builder, לוחצים על < > PromQL.
מזינים את השאילתה בעורך השאילתות. לדוגמה, כדי ליצור תרשים של מספר השניות הממוצע שמעבדי ה-CPU בילו בכל מצב במהלך השעה האחרונה, משתמשים בשאילתה הבאה:
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
מחליפים את מה שכתוב בשדות הבאים:
CLUSTER_NAME: השם של האשכול עם הצמתים שמשתמשים ביחידות GPU.
NAMESPACE: מרחב השמות שבו פרסתם את המשאב המותאם אישית PodMonitoring.
מידע נוסף על השימוש ב-PromQL זמין במאמר PromQL ב-Cloud Monitoring.