במאמר הזה מוסבר איך להגדיר את הפריסה של Google Kubernetes Engine כדי שתוכלו להשתמש בשירות המנוהל של Google Cloud ל-Prometheus כדי לאסוף מדדים מ-Istio. במאמר הזה מוסבר איך:
- הגדרת Istio לדיווח על מדדים.
- אפשר לגשת למרכז בקרה מוגדר מראש ב-Cloud Monitoring כדי לראות את המדדים.
- הגדרת כללי התראה למעקב אחר המדדים.
ההוראות האלה רלוונטיות רק אם אתם משתמשים ב אוסף מנוהל עם שירות מנוהל ל-Prometheus. אם אתם משתמשים באיסוף שמוגדר באופן עצמאי, תוכלו לעיין במאגר המקור של Istio כדי לקבל מידע על ההתקנה.
ההוראות האלה הן דוגמה, והן צפויות לפעול ברוב סביבות Kubernetes. אם נתקלתם בבעיה בהתקנת אפליקציה או כלי לייצוא בגלל מדיניות אבטחה או מדיניות ארגונית מגבילה, מומלץ לעיין במסמכי קוד פתוח לקבלת תמיכה.
מידע על Istio זמין במאמר Istio.
דרישות מוקדמות
כדי לאסוף מדדים מ-Istio באמצעות שירות מנוהל ל-Prometheus ואיסוף מנוהל, הפריסה צריכה לעמוד בדרישות הבאות:
- האשכול צריך להריץ את Google Kubernetes Engine בגרסה 1.28.15-gke.2475000 ואילך.
- צריך להפעיל את השירות המנוהל ל-Prometheus עם איסוף מנוהל. מידע נוסף זמין במאמר תחילת העבודה עם אוסף מנוהל.
מערכת Istio חושפת מדדים בפורמט Prometheus באופן אוטומטי, כך שלא צריך להתקין אותה בנפרד. כדי לוודא ש-Istio Proxy הוזרק כ-sidecar, ושגם Istiod (מישור הבקרה של Istio) וגם Istio Proxy פולטים מדדים בנקודות הקצה הצפויות, אפשר להריץ את הבדיקות הבאות.
כדי לבדוק אם Istio Proxy מוזרק כ-sidecar, מריצים את הפקודה הבאה, שמפרטת את הקונטיינרים שפועלים בפודים של האפליקציה:
kubectl get pod -l app=APPLICATION_NAME -n NAMESPACE_NAME -o jsonpath='{.items[0].spec.containers[*].name}'אם אתם רואים שה-pods מכילים את מאגר ה-sidecar
istio, סימן שהייצואן הוזרק. אם ה-sidecar לא מוזרק, צריך לפעול לפי ההוראות במאמר Istio: Installing the sidecar.כדי לוודא שהמדדים מופקים על ידי Istio Proxy, מריצים את הפקודה הבאה, שבודקת את נקודת הקצה
/stats/prometheusשלistioבפוד שצוין:kubectl exec POD_NAME -n NAMESPACE_NAME -c istio-proxy -- curl -sS 'localhost:15090/stats/prometheus'
אם אתם רואים מדדים גולמיים של
istio_*ו-envoy_*Prometheus, סימן שהמדדים מופקים בצורה תקינה.כדי לוודא שהמדדים מופקים באופן דומה ב-Istiod, מריצים את הפקודה הבאה, שבודקת את נקודת הקצה
/metricsשל Istiod באחד מה-pods בפריסהistiod:kubectl exec -n istio-system deployment/istiod -- curl -sS 'localhost:15014/metrics'
הגדרה של משאב PodMonitoring
לגילוי יעדים, ל-Managed Service for Prometheus Operator נדרש משאב PodMonitoring שתואם ל-Istio באותו מרחב שמות.
אפשר להשתמש בהגדרה הבאה של PodMonitoring:
ב-Istio נדרשים שני משאבי PodMonitoring נפרדים: אחד לניטור Istiod ואחד לניטור של Istio Proxy sidecars ושערי הכניסה והיציאה. כדי לעקוב אחרי מדדי Istio Proxy בכל מרחבי השמות באשכול בבת אחת, צריך להחיל אתistio-proxy PodMonitoring על כל מרחב שמות או להגדיר משאב ClusterPodMonitoring במקום משאב PodMonitoring לכל מרחב שמות.
אם אתם מתכננים להשתמש בלוחות הבקרה של Grafana שסופקו על ידי Istio, בנוסף למשאבי PodMonitoring שמתוארים במסמך הזה, אתם צריכים לוודא שגם הגדרתם גירוד של cAdvisor ו-Kubelet.
כדי להחיל שינויים בתצורה מקובץ מקומי, מריצים את הפקודה הבאה:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.
הגדרת כללים והתראות
אפשר להשתמש בהגדרות Rules הבאות כדי להגדיר התראות על מדדי Istio:
כדי להחיל שינויים בתצורה מקובץ מקומי, מריצים את הפקודה הבאה:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.
מידע נוסף על החלת כללים על האשכול זמין במאמר הערכה והתראות של כללים מנוהלים.
ההגדרה הזו שלRules מבוססת על כללי Istio שסופקו על ידי Awesome Prometheus Alerts.
אפשר לשנות את ערכי הסף של ההתראות בהתאם לאפליקציה.
אימות ההגדרה
אתם יכולים להשתמש ב-Metrics Explorer כדי לוודא שהגדרתם את Istio בצורה נכונה. יכול להיות שיחלפו דקה או שתיים עד שמערכת Cloud Monitoring תעבד את המדדים.
כדי לוודא שהמדדים נאספים, מבצעים את הפעולות הבאות:
-
נכנסים לדף leaderboard Metrics explorer במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- בסרגל הכלים של החלונית ליצירת שאילתות, לוחצים על הלחצן ששמו code PromQL.
- מזינים ומריצים את השאילתה הבאה:
sum(istio_build{cluster="CLUSTER_NAME"}) by (component)
צפייה במרכזי הבקרה
השילוב עם Cloud Monitoring כולל את מרכז הבקרה Istio Envoy Prometheus Overview. לוחות הבקרה מותקנים באופן אוטומטי כשמגדירים את השילוב. אפשר גם לראות תצוגות מקדימות סטטיות של מרכזי בקרה בלי להתקין את האינטגרציה.
כדי לראות מרכז בקרה שהותקן:
-
במסוף Google Cloud , עוברים לדף Dashboards:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- לוחצים על הכרטיסייה רשימת מרכזי בקרה.
- בוחרים בקטגוריה שילובים.
- לוחצים על השם של מרכז הבקרה, למשל Istio Envoy Prometheus Overview.
כדי לראות תצוגה מקדימה סטטית של מרכז הבקרה:
-
נכנסים לדף
Integrations במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- לוחצים על המסנן Kubernetes Engine של פלטפורמת הפריסה.
- מאתרים את השילוב של Istio ולוחצים על הצגת פרטים.
- לוחצים על הכרטיסייה מרכזי בקרה.
פתרון בעיות
מידע על פתרון בעיות בהוספת מדדים זמין במאמר פתרון בעיות שקשורות להוספה בקטע בעיות באיסוף נתונים ממייצאים.