הקדמה לניתוח הנציגות של Istio באמצעות Prometheus
רשת שירותי Istio מפשטת את הרשת משכבות היישום באמצעות מסכות צד (sidecar proxies). אפשר ליישם מדיניות אבטחה ורשת מתקדמת לכל התקשורת ברחבי המבנה התשתיתי שלך באמצעות Istio.
אבל תכונה חשובה נוספת של Istio היא הניתוח הנציגות. אפשר להשתמש ב-Istio כדי לצפות בביצועים ובהתנהגות של כל המיקרושירות שלך במבנה התשתית (ראה את התמונה למטה). אחת האחריות העיקריות של מהנדסי נציגות אתר (Site reliability engineers – SREs) בארגונים גדולים היא לנטר את המדדים המובילים של היישומים שלהם, כגון שימוש בפונט, שימוש בזיכרון, עיכוב וקיבולת.
במאמר זה נדון באיך מהנדסי SREs יכולים להשתמש בשלושת התוכנות הפתוחות – Istio, Prometheus ו-Grafana. בעוד Istio היא התוכנה של רשת השירותים המפורסמת ביותר, Prometheus היא התוכנה הנפוצה ביותר לניטור, ו-Grafana היא כלי ההדגשה המפורסם ביותר.
הערה: השלבים בודקים עבור Istio 1.17.X
צפו בסרטון התצוגה של Istio, Prometheus ו-Grafana
צפו בסרטון אם אתם רוצים לעקוב אחר השלבים מהסרטון:
שלב 1: עבור לתוספות Istio ולהחיל את קובץ YAML של Prometheus ו-Grafana
ראשית, עבור לתיקיית התוספות במדריך של Istio באמצעות הפקודה. מאחר שאני משתמש ב-1.17.1, הנתיב עבורי הוא istio-1.17.1/samples/addons
תבחין שאיסטיו כבר מספק כמה קבצי YAML להגדרת Grafana, Prometheus, Jaeger, Kiali וכו'. אפשר להגדיר את Prometheus בעזרת הפקודה הבאה:
kubectl apply -f prometheus.yaml
kubectl apply -f grafana.yaml
שים לב שקבצי YAML התוספת האלה מיושמים למרחב שמימוש הוא istio-system
כברירת מחדל.

שלב 2: פרוס שירות חדש והעברת כבירת כניסה של Istio
כדי להתנסות במודל הפעולה, נפרוס את השירות httpbin
למרחב מותאם לאיסטיו. ניצור אובייקט של כבירת כניסה של Istio כדי לקבל את התנועה לשירות מהציבור הציבורי.
נעביר גם את כבירת הכניסה של איסטיו ליצירת מפתח מסוים של-7777.

אתה צריך לראות את המסך הבא בlocalhost:7777

שלב 3: פתיחת לוח המחוונים של Prometheus ו-Grafana
אפשר לפתוח את לוח המחוונים של Prometheus בעזרת הפקודה הבאה.
istioctl dashboard prometheus
istioctl dashboard grafana
גרפנה ו-Prometheus יפתחו ב-localhost.

שלב 4: עשה בקשות HTTP מ-Postman
נראה איך השירות httpbin
צורך ב-CPU או זיכרון כשיש עומס תנועה. ניצור כמה בקשות GET
ו-POST
ל-localhost:7777
מאפליקציית Postman.

פעמים רבות שאתה שולח בקשות GET
או POST
לשירות httpbin
, משתמשים במשאבים, ואנו יכולים לראות אותם ב-Grafana. אך קודם כל, עלינו להגדיר את המדדים עבור שירות httpbin
ב-Prometheus וב-Grafana.
שלב 5: הגדרת מדדים ב-Prometheus
אפשר לבחור מספר רב של מדדים הקשורים למשאבי Kubernetes כגון שרת ה-API, יישומים, עבודות, envoy וכו '. נבחר את המדד container_memory_working_set_bytes
עבור ההתקנה שלנו.
ביישום Prometheus, נבחר את המרחב השמימי לאיסוף המדדים באמצעות המונח החיפוש הבא: container_memory_working_set_bytes { namespace= “istio-telemetry”}
(istio-telemetry
הוא שם המרחב השמימי שלנו עם Istio, שם מופעל שירות httpbin
)
שים לב שפשוט רצים עם זה, אנו מקבלים את הזיכרון עבור המרחב השמימי שלנו. מאחר שאנו רוצים לנתח את שימוש הזיכרון בתאים שלנו, אפשר לחשב את הזיכרון הכולל שנצרך על ידי סיכום שימוש הזיכרון של כל תא מופעל לפי תא מופעל. השאילתה הבאה תעזור לנו להשיג את התוצאה הרצויה: sum(container_memory_working_set_bytes{namespace=”istio-telemetry”}) by (pod)

הערה: Prometheus מספק הרבה גמישות לסנן, לחתוך ולקרוע את נתוני המדדים. הרעיון המרכזי של המאמר הזה היה להציג את היכולת של Istio לפלוג ולשלוח מדדים ל-Prometheus לאיספק
שלב 6: הגדרת גרפים של מדדי Istio ב-Grafana
כעת, אתה יכול פשוט לקחת את השאילתה sum(container_memory_working_set_bytes{namespace=”istio-telemetry”}) by (pod)
ב-Prometheus ולשרטט גרף עם זמן. כל שעליך לעשות הוא ליצור מזנון חדש ב-Grafana ולהדביק את השאילתה בדפדפן המדדים. Grafana ישרטט גרף סדרתי זמן. אתה יכול לערוך את הגרף עם שמות מתאימים, אגדות וכותרים לשיתוף עם שחקנים אחרים בצוות ה-Ops.

ישנן מספר דרכים לעטוף ולהתאים את הנתונים ולתאר את מדדי Prometheus ב-Grafana. אפשר לבחור לעשות את כל ההתאמות על פי הצרכים של העסק שלך. עשיתי כמה ניסויים בוידאו; תרגיש חופשי לבדוק אותו.
מסקנה
Istio רשת שירותים היא מאוד עוצמתית באספקת הסתרה כוללת ברחבי התשתית. בכתבה זו, הצגנו רק מקרה שימושי קטן של גרישת מדדים והמחשה באמצעות Istio, Prometheus ו-Grafana. אפשר לבצע יציאה ומעקב אחר יציאות ותנועה בזמן אמת באמצעות Istio; נכסה את הנושאים הללו בבלוגים הבאים שלנו.
Source:
https://dzone.com/articles/how-to-configure-istio-prometheus-and-grafana-for-monitoring