שימוש במדדים של Policy Controller

בדף הזה מוסבר איך להשתמש במדדים כדי לעקוב אחרי Policy Controller.

‫Policy Controller כולל מדדים רבים שקשורים לשימוש במדיניות. לדוגמה, יש מדדים שמתעדים את מספר האילוצים ותבניות האילוצים, ואת מספר ההפרות של הביקורת שזוהו. כדי ליצור ולתעד את המדדים האלה, Policy Controller משתמש ב-OpenTelemetry. אפשר להגדיר את Policy Controller כך שהוא ייצא את המדדים האלה אל Prometheus או אל Cloud Monitoring. הגדרת ברירת המחדל לייצוא מדדים היא ייצוא המדדים גם ל-Prometheus וגם ל-Cloud Monitoring.

תמחור

מדדים של Policy Controller משתמשים בשירות המנוהל של Google Cloud ל-Prometheus כדי לטעון מדדים ל-Cloud Monitoring. החיובים על הטמעת המדדים האלה ב-Cloud Monitoring מבוססים על מספר הדגימות שהוטמעו.

מידע נוסף זמין במאמר בנושא תמחור של Cloud Monitoring.

הגדרת ייצוא מדדים

אתם יכולים להגדיר איך Policy Controller מייצא את המדדים שלו. כשמתקינים את Policy Controller, אפשר לבחור ב-Prometheus, ב-Cloud Monitoring, בשניהם או באף אחד מהם. כברירת מחדל, Policy Controller מנסה לייצא מדדים גם ל-Prometheus וגם ל-Cloud Monitoring.

ייצוא מדדים ל-Cloud Monitoring

כדי לאפשר ל-Policy Controller לייצא מדדים ל-Cloud Monitoring, לחשבון השירות שבו משתמש Policy Controller צריך להיות תפקיד IAM roles/monitoring.metricsWriter בפרויקט. כדי להקצות את התפקיד הזה, אפשר לבצע אחת מהפעולות הבאות:

  • אם Policy Controller פועל בסביבה Google Cloud שיש בה חשבון שירות שמוגדר כברירת מחדל, צריך להקצות לחשבון השירות הזה את התפקיד roles/monitoring.metricsWriter בפרויקט:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role=roles/monitoring.metricsWriter
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • PROJECT_NUMBER: מספר הפרויקט Google Cloud.
  • אם מופעלים איחוד זהויות של עומסי עבודה ל-GKE או איחוד זהויות של עומסי עבודה בצי, צריך להעניק את התפקיד roles/monitoring.metricsWriter בפרויקט לחשבון השירות של Kubernetes שבו משתמש Policy Controller:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
        --role=roles/monitoring.metricWriter
    

    מחליפים את PROJECT_ID במזהה הפרויקט של האשכול. Google Cloud

אפשר לראות את המדדים האלה באמצעות Metrics Explorer או באמצעות Cloud Monitoring API.

ייצוא מדדים אל Prometheus

‫Policy Controller מייצא מדדים ל-Prometheus ביציאה 8888 של ה-Pod‏ gatekeeper-controller-manager-* במרחב השמות gatekeeper-system.

אם Policy Controller פועל באשכול עם השירות המנוהל של Google Cloud ל-Prometheus מוגדר, המדדים האלה ייאספו ויישמרו באופן אוטומטי ב-Cloud Monitoring. השיטה הזו רלוונטית גם לאשכולות שבהם מפעילים את השירות המנוהל של Google Cloud ל-Prometheus אחרי ההתקנה של Policy Controller. יכול להיות שתצטרכו גם להעניק הרשאות נוספות לחשבון השירות שמשמש כברירת המחדל של Compute Engine, שבו נעשה שימוש בשירות המנוהל של Google Cloud ל-Prometheus, בהתאם למדיניות שלכם. פרטים על מתן הרשאות לשירות המנוהל של Google Cloud ל-Prometheus זמינים במאמר הפעלת איסוף מנוהל: GKE. מידע נוסף על הגדרת השירות המנוהל של Google Cloud ל-Prometheus זמין במאמר תחילת השימוש באיסוף מנוהל.

מידע נוסף על התמחור של Cloud Monitoring זמין במאמר תמחור של שירות מנוהל של Google Cloud ל-Prometheus.

דוגמאות לאופן הצגת מדדים באמצעות הפתרון 'שירות מנוהל של Google Cloud ל-Prometheus' מופיעות במאמר שאילתה באמצעות Cloud Monitoring.

הצגת המדדים

מדדים של Policy Controller מיוצאים לפרויקט Cloud Monitoring בפורמט Prometheus. כתוצאה מכך, תוכלו לשלוח שאילתות למדדים באמצעות Cloud Monitoring API ולוח בקרה במסוף Google Cloud . אתם יכולים לערוך את מרכז הבקרה הזה בהתאם לצרכים העסקיים והתפעוליים שלכם.

כדי לשלוח שאילתות ל-Cloud Monitoring API, אפשר להשתמש בשפת השאילתות של Prometheus‏ (PromQL) (שפת השאילתות הסטנדרטית למדדי Kubernetes) או בשפת השאילתות של Monitoring‏ (MQL) (שפת השאילתות הקניינית של Google למדדים).

אפשר להשתמש בתבנית כדי להגדיר לוח בקרה. לשם כך, מחפשים את האפשרות Policy Controller בדף Cloud Monitoring Dashboards. מידע נוסף על יצירה ועריכה של תבניות ללוחות בקרה זמין במסמכי העזרה של Cloud Monitoring.

יצירת התראות

כדי לקבל התראות כשהמדדים מגיעים לספים מסוימים, צריך ליצור מדיניות התראות ב-Cloud Monitoring.

שילוב צד שלישי

באמצעות Cloud Monitoring API, כל כלי צד שלישי למעקב אחר נתונים יכול לקבל מדדים של Policy Controller.

לדוגמה, אם אתם משתמשים בלוחות בקרה של Grafana, תוכלו להוסיף את Cloud Monitoring API כמקור הנתונים ב-Grafana. מידע נוסף זמין במאמר בנושא Google Cloud Monitoring במסמכי התיעוד של Grafana.

מדדים זמינים

אם Policy Controller מופעל באשכול שלכם והוא מוגדר לייצוא ל-Cloud Monitoring, תוכלו לשלוח שאילתות לגבי המדדים הבאים (כולם עם הקידומת OpenCensus/):

שם סוג תוויות תיאור
OpenCensus/audit_duration_seconds מצטבר התפלגות משך הזמן של מחזור הביקורת
OpenCensus/audit_last_run_time מד חותמת הזמן של התקופה מאז זמן הריצה האחרון של הביקורת, בשניות בפורמט של נקודה צפה
OpenCensus/constraint_template_ingestion_count מצטבר סטטוס המספר הכולל של פעולות ההטמעה של תבניות אילוצים
OpenCensus/constraint_template_ingestion_duration_seconds מצטבר סטטוס התפלגות משך ההטמעה של תבנית אילוצים
OpenCensus/constraint_templates מד סטטוס מספר תבניות האילוצים הנוכחי
OpenCensus/validation_request_count הצעה נגדית admission_status מספר בקשות הגישה משרת ה-API
OpenCensus/validation_request_duration_seconds מצטבר admission_status התפלגות משך הזמן של בקשות הקבלה
OpenCensus/violations מד enforcement_action מספר ההפרות של כללי הביקורת שזוהו במחזור הביקורת האחרון
OpenCensus/watch_manager_intended_watch_gvk מד כמה GroupVersionKinds ייחודיים אמורים להיות במעקב של Policy Controller. המדד הזה מייצג שילוב של משאבים מסונכרנים ואילוצים.
OpenCensus/watch_manager_watched_gvk מד כמה GroupVersionKinds ייחודיים נמצאים בפועל במעקב של Policy Controller. המדד הזה אמור להתכנס למספר ששווה ל-OpenCensus/watch_manager_intended_watch_gvk.

אם Policy Controller מוגדר לייצוא ל-Prometheus, אפשר להריץ שאילתות לגבי המדדים הבאים (לכולם יש את הקידומת Prometheus/):

שם סוג תוויות תיאור
Prometheus/gatekeeper_audit_duration_seconds/histogram מצטבר התפלגות משך הזמן של מחזור הביקורת
Prometheus/gatekeeper_audit_last_run_end_time/gauge מד חותמת הזמן של סוף הרצת הביקורת האחרונה, בפורמט epoch, בשניות בנקודה צפה
Prometheus/gatekeeper_audit_last_run_time/gauge מד חותמת הזמן של ראשית הזמן של ההפעלה האחרונה של הביקורת, בשניות בפורמט של נקודה צפה
Prometheus/gatekeeper_constraint_template_ingestion_count/counter מצטבר סטטוס המספר הכולל של פעולות ההטמעה של תבניות אילוצים
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram מצטבר סטטוס התפלגות משך ההטמעה של תבנית אילוצים
Prometheus/gatekeeper_constraint_templates/gauge מד סטטוס מספר תבניות האילוצים הנוכחי
Prometheus/gatekeeper_validation_request_count/counter מצטבר admission_status, admission_dryrun מספר בקשות הגישה משרת ה-API
Prometheus/gatekeeper_validation_request_duration_seconds/histogram מצטבר admission_status התפלגות משך הזמן של בקשות הקבלה
Prometheus/gatekeeper_violations/gauge מד enforcement_action מספר ההפרות של כללי הביקורת שזוהו במחזור הביקורת האחרון
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge מד כמה GroupVersionKinds ייחודיים אמורים להיות במעקב של Policy Controller. המדד הזה מייצג שילוב של משאבים מסונכרנים ואילוצים.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge מד כמה GroupVersionKinds ייחודיים נמצאים בפועל במעקב של Policy Controller. המדד הזה אמור להתכנס למספר ששווה ל-Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

המאמרים הבאים