מידע על יכולות התצפית של GKE Dataplane V2

התכונה GKE Dataplane V2 observability מספקת מדדים ותובנות של GKE Dataplane V2 לגבי עומסי עבודה באשכולות GKE ב- Google Cloud. החל מגרסאות GKE‏ 1.28 ואילך, אפשר להשתמש ביכולות הניטור של GKE Dataplane V2 כדי:

התכונה 'יכולת צפייה' ב-GKE Dataplane V2 כוללת את הכלים הבאים לפתרון בעיות:

  • טופולוגיה של רשת באשכול Kubernetes
  • טבלה של פסיקות לגבי כללי מדיניות של רשת Kubernetes עם נתוני תעבורה בזמן אמת ופרטי חיבור
  • כלי שורת פקודה לפתרון בעיות בזרימת תעבורה ב-Kubernetes

מדדים של GKE Dataplane V2

מדדים של GKE Dataplane V2 מספקים מידע על זרימת התנועה עבור:

  • זרימות תנועה: תובנות לגבי האופן שבו GKE מטפל בזרימות בין Pods לבין Services.
  • אכיפת מדיניות הרשת: מידע על האופן שבו GKE אוכף את מדיניות הרשת של Kubernetes.

אפשר להשתמש במדדים של GKE Dataplane V2 כדי לעקוב אחרי עומסי עבודה של Kubernetes ולפתור בעיות בהם באמצעות הכלים הבאים:

  • Google Cloud Managed Service for Prometheus כדי להציג ולנתח את המדדים של GKE Dataplane V2. אתם יכולים לשנות את ההגדרה של השירות המנוהל של Google Cloud ל-Prometheus כדי להוסיף או להסיר את המדדים הרצויים להטמעה בשירות המנוהל של Google Cloud ל-Prometheus.
  • Cloud Monitoring Metrics Explorer כדי לראות פרטים על זרימת התעבורה ברמת ה-Pod.
  • Cloud Monitoring כדי לעיין בכל מדד ולהשתמש בו. לדוגמה, אתם יכולים ליצור התראות שמופעלות כשמדדים של GKE Dataplane V2 חורגים מספים מסוימים.
  • Grafana בניהול עצמי כדי להציג מדדים שנאספו על ידי השירות המנוהל של Google Cloud ל-Prometheus.

כשמפעילים את השירות המנוהל של Google Cloud ל-Prometheus:

  • משאב PodMonitoring נוצר ב-GKE
  • ‫GKE חושף את נקודת הקצה של המדדים

כדי לצרוך מדדים באמצעות השירות המנוהל של Google Cloud ל-Prometheus וכדי ליצור משאב PodMonitoring, צריך להפעיל את השירות המנוהל של Google Cloud ל-Prometheus באשכול. אם לא מפעילים את השירות המנוהל של Google Cloud ל-Prometheus, ‏ GKE חושף את נקודת הקצה של המדדים אבל לא יוצר משאב PodMonitoring.

כשמפעילים מדדים של GKE Dataplane V2 באשכול, השירות המנוהל של Google Cloud ל-Prometheus קולט את המדדים הבאים של GKE Dataplane V2:

מדד GKE Dataplane V2 סוג תיאור
prometheus.googleapis.com/pod_flow_egress_flows_count/counter מצטבר המספר הכולל של תהליכי עבודה מ-Pod.
prometheus.googleapis.com/pod_flow_ingress_flows_count/counter מצטבר מספר התהליכים הכולל שמוגדרים ל-Pod.

הפעלת המדדים של GKE Dataplane V2 פותחת את יציאת המדדים בכל צומת Kubernetes.

יש גם מדדים נוספים, כולל מהפלטפורמה Hubble של קוד פתוח למעקב אחרי נתונים. כברירת מחדל, השירות המנוהל של Google Cloud ל-Prometheus לא קולט את המדדים הנוספים האלה, אבל אפשר להגדיר את השירות המנוהל של Google Cloud ל-Prometheus כך שיאסוף אותם. כדי לאסוף את המדדים האלה, מגדירים PodMonitoring משאב מותאם אישית (CR).

בטבלה הבאה מפורטים מדדים נוספים של Hubble:

מדד האבל סוג תיאור
hubble_flows_processed_total מצטבר המספר הכולל של תהליכי העבודה שעובדו.
hubble_drop_total מצטבר המספר הכולל של תהליכים שהופסקו.
hubble_port_distribution_total מצטבר המספר הכולל של תהליכי העבודה שעברו עיבוד, מצטבר לפי מספר היציאה.
hubble_tcp_flags_total מצטבר המספר הכולל של תהליכים שעברו עיבוד עם הגדרת דגלים מסוימים של TCP.
hubble_icmp_total מצטבר המספר הכולל של תעבורת ICMP שעובדה.

כדי לאסוף את המדדים הנוספים האלה, צריך ליצור משאב PodMonitoring באשכול.

לדוגמה, כדי ליצור משאב PodMonitoring שאוסף את כל מדדי Hubble הזמינים, מבצעים את השלבים הבאים:

  1. שומרים את קובץ המניפסט הבא בשם pod-monitoring.yaml:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: hubble-metrics
      namespace: kube-system
      # The resource is created in the `kube-system` namespace because the Cilium pods that emit the metrics reside in that namespace
    spec:
      selector:
        matchLabels:
          k8s-app: cilium
      endpoints:
      - port: 9965
        interval: 30s
        path: /metrics
        metricRelabeling:
        - action: keep
          sourceLabels: [__name__]
          regex: (hubble_flows_processed_total|hubble_drop_total|hubble_port_distribution_total|hubble_tcp_flags_total|hubble_icmp_total)
    
  2. מריצים את הפקודה הבאה כדי להחיל את המניפסט על האשכול:

    kubectl apply -f pod-monitoring.yaml
    

    אחרי שמחילים את ההגדרה הזו, המדדים הנוספים של Hubble זמינים בשירות המנוהל של Google Cloud ל-Prometheus.

כלי ניראות של GKE Dataplane V2

הפתרון GKE Dataplane V2 observability מספק פתרון מנוהל של Hubble עם תובנות לגבי אבטחה וניטור רשת לעומסי עבודה של Kubernetes שנפרסו באמצעות GKE Dataplane V2.

כשמפעילים את התכונה 'יכולת צפייה במישור הנתונים ב-GKE V2', הרכיבים הבאים נפרסים באשכול:

  • Hubble Relay: שירות שאוסף נתוני טלמטריה של רשת לגבי ה-Pods שלכם מכל צומת.

  • Hubble CLI: כלי של ממשק שורת הפקודה (CLI) שמספק מידע על תנועה בזמן אמת בתוך האשכול.

אחרי שמפעילים את יכולת הצפייה במישור הנתונים ב-GKE Dataplane V2 באשכול, אפשר לפרוס את הרכיב הבא:

  • ממשק המשתמש של Hubble: כלי מבוסס-אינטרנט שמאפשר לכם להציג ולנתח את נתוני הטלמטריה של הרשת שנאספים על ידי Hubble Relay. כדי לפרוס את Hubble UI, צריך להפעיל את יכולת הצפייה ב-GKE Dataplane V2.

איך פועלים המדדים והיכולות של GKE Dataplane V2

כדי לאסוף מדדים ולספק תובנות לגבי תנועת הגולשים ברשת, אנחנו משתמשים ברכיבים ובכלים הבאים ב-GKE Dataplane V2:

  • ‫GKE Dataplane V2: מדדים ויכולות ניטור של GKE Dataplane V2 מבוססים על נתיב הנתונים של GKE Dataplane V2 שמבוסס על eBPF. המדדים האלה משמשים לאיסוף נתונים על זרימות תנועה ועל אכיפת מדיניות הרשת עבור Pod שמבוסס על עומס עבודה נתון.

  • Google Cloud Managed Service for Prometheus: ‏GKE Dataplane V2 metrics מגדיר את הסוכן של Google Cloud Managed Service for Prometheus לקליטת מדדים מצטברים ב-Google Cloud Managed Service for Prometheus, פתרון ניטור ניתן להרחבה שיכול לקלוט ולאחסן כמויות גדולות של נתונים, וגם מאפשר לכם לבנות על Google Cloud Observability.

  • Hubble: תכונת ה-Observability ב-GKE Dataplane V2 משתמשת ב-Hubble, פרויקט Observability בקוד פתוח. ‫Hubble מאפשר תובנות לגבי אבטחת רשת וניטור שלה עבור עומסי עבודה של Kubernetes שנפרסו באמצעות eBPF Dataplane.

    אירועים של תהליך Hubble מתרחשים במקרים הבאים:

    • קודם מתבצע חיבור לרשת

    • קודם כל רואים דגל TCP שמציין את מצב החיבור של TCP

    • מנות נשלחות אחרי שעברו לפחות חמש שניות מאז אירוע הזרימה האחרון

    מדדים של Hubble: ספירה של מספר אירועי הזרימה באשכול Kubernetes שאפשר להשתמש בהם כדי לזהות אילו Pods מתקשרים זה עם זה.

  • הפעלת מדדים ויכולת צפייה: אפשר להפעיל את GKE Dataplane V2 ואת יכולת הצפייה בנפרד. כדי להפעיל את ההדמיה של טופולוגיית הרשת בממשק המשתמש של Hubble בקוד פתוח, צריך להפעיל את יכולת התצפית של GKE Dataplane V2.

  • אשכולות Autopilot:

    • המדדים מופעלים כברירת מחדל

    • כברירת מחדל, כלי הניטור מושבתים

    • כדי לאסוף מדדים בשירות המנוהל של Google Cloud ל-Prometheus, צריך ליצור את משאב ClusterPodMonitoring.

  • אשכולות רגילים:

    • המדדים מושבתים כברירת מחדל

    • כברירת מחדל, כלי הניטור מושבתים

    • אם הפעלתם את השירות המנוהל של Google Cloud ל-Prometheus, נוצר באופן אוטומטי משאב PodMonitoring

    • משאב PodMonitoring מסומן כensure exists. כדי להפסיק לשלוח מדדים אל השירות המנוהל של Google Cloud ל-Prometheus, צריך לערוך את המשאב PodMonitoring כדי להשבית את כל המדדים.

נקודות קצה של GKE Dataplane V2 לצורך יכולת צפייה

רכיבי הניראות של GKE Dataplane V2 חושפים את שתי נקודות הקצה הבאות של הניראות:

  • נקודת קצה (endpoint) של מדדים: נקודת קצה (endpoint) של HTTP שחושפת מדדי תנועה בפורמט Prometheus. ‫anetd Pod חושף את נקודת הקצה של המדדים בכל צומת של אשכול ביציאה 9965.

  • יציאת זרימות: נקודת קצה של gRPC. ‫hubble-relay Pod חושף את נקודת הקצה של יציאת הזרימות כשירות ClusterIP Kubernetes ביציאה 443. ‫hubble-relayPod הוא הקצה העורפי של שירות ClusterIP Kubernetes, וכל הבקשות לשירות ClusterIP Kubernetes מועברות אל hubble-relay Pod. אפשר לגשת ליציאת הזרימה באמצעות Hubble CLI או ממשק המשתמש של Hubble.

מגבלות

  • ל-GKE Dataplane V2 observability יש מגבלה של 5,000 צמתים ברמת האשכול.
  • מדדים ויכולות ניטור של GKE Dataplane V2 פועלים רק באשכולות ב-Google Cloud עם GKE Dataplane V2 מופעל.
  • מדדים של GKE Dataplane V2 דומים למדדים של Hubble בכך שהם מיושמים כמדדים מבוססי-זרימה כדי לספק מידע על החיבור. המדדים האלה לא סופרים את כמות הנתונים או את מספר החבילות שמועברות. המדדים מבוססים על זרימה, ולכן הם לא מספקים ייצוג מדויק של כמות הנתונים שמועברים בזרימת נתונים ברשת.

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