GKE Inference Gateway

במאמר הזה מוסבר איך להגדיר את פריסת Google Kubernetes Engine כדי שתוכלו להשתמש בשירות המנוהל של Google Cloud ל-Prometheus לאיסוף מדדים מ-GKE Inference Gateway. במאמר הזה מוסבר איך:

  • מגדירים את GKE Inference Gateway לדיווח על מדדים.
  • כדי לראות את המדדים, נכנסים למרכז בקרה מוגדר מראש ב-Cloud Monitoring.

ההוראות האלה רלוונטיות רק אם אתם משתמשים ב איסוף מנוהל עם שירות מנוהל ל-Prometheus. אם אתם משתמשים באיסוף בפריסה עצמית, עיינו במסמכי התיעוד של GKE Inference Gateway כדי לקבל מידע על ההתקנה.

ההוראות האלה הן דוגמה, והן אמורות לפעול ברוב סביבות Kubernetes. אם אתם נתקלים בבעיות בהתקנה של אפליקציה או של כלי ייצוא בגלל מדיניות אבטחה או מדיניות ארגונית מגבילה, מומלץ לעיין במסמכי התיעוד של קוד פתוח כדי לקבל תמיכה.

מידע נוסף על GKE Inference Gateway זמין במאמר GKE Inference Gateway.

דרישות מוקדמות

כדי לאסוף מדדים מהמייצא של GKE Inference Gateway באמצעות השירות המנוהל ל-Prometheus ואיסוף מנוהל, הפריסה צריכה לעמוד בדרישות הבאות:

  • באשכול צריכה לפעול גרסה ‎1.28.15-gke.2475000 או גרסה חדשה יותר של Google Kubernetes Engine.
  • צריך להפעיל את השירות המנוהל ל-Prometheus עם איסוף מנוהל. מידע נוסף זמין במאמר תחילת העבודה עם אוסף מנוהל.

הכלי לייצוא נתונים של GKE Inference Gateway חושף באופן אוטומטי מדדים בפורמט של Prometheus, כך שלא צריך להתקין אותו בנפרד.

כדי לוודא שהמייצא של GKE Inference Gateway מפיק מדדים בנקודות הקצה הצפויות:

  1. מוסיפים סוד, ServiceAccount,‏ ClusterRole ו-ClusterBinding. נקודות הקצה של יכולת התצפית של GKE Inference Gateway מוגנות באמצעות אסימון האימות. כדי לקבל פרטי כניסה, הלקוח צריך סוד שממפה לחשבון שירות עם ClusterRole המחובר, לכלל nonResourceURLs: "/metrics", verbs: get. מידע נוסף מופיע במאמר יצירת סוד לחשבון שירות.

  2. מגדירים העברה ליציאה אחרת באמצעות הפקודה הבאה:

    kubectl -n NAMESPACE_NAME port-forward POD_NAME 9090
    
  3. בחלון אחר, מבצעים את הפעולות הבאות:

    1. מריצים את הפקודה הבאה כדי לאחזר את האסימון:

      TOKEN=$(kubectl -n default get secret inference-gateway-sa-metrics-reader-secret  -o jsonpath='{.secrets[0].name}' -o jsonpath='{.data.token}' | base64 --decode)
      
    2. ניגשים לנקודת הקצה (endpoint) localhost:9090/metrics באמצעות הכלי curl:

      curl -H "Authorization: Bearer $TOKEN" localhost:9090/metrics
      

יצירת סוד לחשבון שירות

כדי לאסוף מדדים מנקודת הקצה המוגנת של GKE Inference Gateway, צריך להגדיר סוד במרחב השמות gmp-system של האופרטור שירות מנוהל ל-Prometheus.

אם האשכול במצב אוטומטי, מחליפים את gmp-system ב-gke-gmp-system.

אפשר להשתמש בהגדרות הבאות של Secret, ‏ ServiceAccount, ‏ ClusterRole ו-ClusterRoleBinding:

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: inference-gateway-metrics-reader
rules:
- nonResourceURLs:
  - /metrics
  verbs:
  - get
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: inference-gateway-sa-metrics-reader
  namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: inference-gateway-sa-metrics-reader-role-binding
  namespace: default
subjects:
- kind: ServiceAccount
  name: inference-gateway-sa-metrics-reader
  namespace: default
roleRef:
  kind: ClusterRole
  name: inference-gateway-metrics-reader
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: Secret
metadata:
  name: inference-gateway-sa-metrics-reader-secret
  namespace: default
  annotations:
    kubernetes.io/service-account.name: inference-gateway-sa-metrics-reader
type: kubernetes.io/service-account-token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: inference-gateway-sa-metrics-reader-secret-read
rules:
- resources:
  - secrets
  apiGroups: [""]
  verbs: ["get", "list", "watch"]
  resourceNames: ["inference-gateway-sa-metrics-reader-secret"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gmp-system:collector:inference-gateway-sa-metrics-reader-secret-read
  namespace: default
roleRef:
  name: inference-gateway-sa-metrics-reader-secret-read
  kind: ClusterRole
  apiGroup: rbac.authorization.k8s.io
subjects:
- name: collector
  namespace: gmp-system
  kind: ServiceAccount

למידע נוסף, קראו את המדריך למדדים ולתצפיתיות של המייצא.

כדי להחיל שינויים בהגדרות מקובץ מקומי, מריצים את הפקודה הבאה:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.

הגדרת משאב ClusterPodMonitoring

כדי לזהות את היעד, השירות המנוהל ל-Prometheus Operator דורש משאב ClusterPodMonitoring שתואם למייצא של GKE Inference Gateway באותו מרחב שמות.

אפשר להשתמש בהגדרות הבאות של ClusterPodMonitoring:

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: ClusterPodMonitoring
metadata:
  name: inference-optimized-gateway-monitoring
  labels:
    app.kubernetes.io/name: inference-optimized-gateway
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: metrics
    scheme: http
    interval: 5s
    path: /metrics
    authorization:
      type: Bearer
      credentials:
        secret:
          name: inference-gateway-sa-metrics-reader-secret
          key: token
          namespace: default
  selector:
    matchLabels:
      app: inference-gateway-ext-proc

‫GKE Inference Gateway משתמש במשאב ClusterPodMonitoring במקום במשאב PodMonitoring כי הוא צריך לגשת לסוד ממרחב שמות אחר.

בבורר matchLabels של ההגדרה ClusterPodMonitoring, אתם יכולים להחליף את הערך app של inference-gateway-ext-proc בתוויות מהפריסה של GKE Inference Gateway. מוודאים שהערכים בשדות port ו-matchLabels תואמים לאלה של הפודים של GKE Inference Gateway שרוצים לעקוב אחריהם.

כדי להחיל שינויים בהגדרות מקובץ מקומי, מריצים את הפקודה הבאה:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.

אימות ההגדרות האישיות

אתם יכולים להשתמש ב-Metrics Explorer כדי לוודא שהגדרתם נכון את הייצוא של GKE Inference Gateway. יכול להיות שיעברו דקה או שתיים עד ש-Cloud Monitoring יקלוט את המדדים.

כדי לוודא שהמדדים נקלטים, מבצעים את הפעולות הבאות:

  1. במסוף Google Cloud , נכנסים לדף  Metrics explorer:

    כניסה לדף Metrics Explorer

    אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.

  2. בסרגל הכלים של החלונית query-builder, לוחצים על הלחצן  PromQL.
  3. מזינים ומריצים את השאילתה הבאה:
    inference_model_request_total{cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

צפייה במרכזי הבקרה

השילוב עם Cloud Monitoring כולל את לוח הבקרה GKE Inference Gateway Prometheus Overview. מרכזי הבקרה מותקנים באופן אוטומטי כשמגדירים את השילוב. אתם יכולים גם לראות תצוגות מקדימות סטטיות של מרכזי הבקרה בלי להתקין את השילוב.

כדי לראות מרכז בקרה שהותקן, מבצעים את הפעולות הבאות:

  1. נכנסים לדף  Dashboards במסוף Google Cloud :

    כניסה לדף Dashboards

    אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.

  2. לוחצים על הכרטיסייה רשימת מרכזי הבקרה.
  3. בוחרים בקטגוריה Integrations (שילובים).
  4. לוחצים על שם מרכז הבקרה, לדוגמה GKE Inference Gateway Prometheus Overview.

כדי לראות תצוגה מקדימה סטטית של מרכז הבקרה:

  1. נכנסים לדף  Integrations במסוף Google Cloud :

    עוברים אל שילובים.

    אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.

  2. לוחצים על המסנן Kubernetes Engine של פלטפורמת הפריסה.
  3. מאתרים את השילוב של GKE Inference Gateway ולוחצים על View Details.
  4. לוחצים על הכרטיסייה מרכזי בקרה.

פתרון בעיות

למידע על פתרון בעיות בהטמעת מדדים, ראו בעיות באיסוף ממייצאים במאמר פתרון בעיות בצד ההטמעה.