GKE Inference Gateway

Questo documento descrive come configurare il deployment di Google Kubernetes Engine in modo da poter utilizzare Google Cloud Managed Service per Prometheus per raccogliere le metriche da GKE Inference Gateway. Questo documento mostra come eseguire le seguenti operazioni:

  • Configurare GKE Inference Gateway per la generazione di report sulle metriche.
  • Accedere a una dashboard predefinita in Cloud Monitoring per visualizzare le metriche.

Queste istruzioni si applicano solo se utilizzi la raccolta gestita con Managed Service per Prometheus. Se utilizzi la raccolta con deployment autonomo, consulta la documentazione di GKE Inference Gateway per informazioni sull'installazione.

Queste istruzioni sono fornite a titolo di esempio e dovrebbero funzionare nella maggior parte degli ambienti Kubernetes. Se hai difficoltà a installare un'applicazione o un esportatore a causa di policy di sicurezza o aziendali restrittive, ti consigliamo di consultare la documentazione open source per ricevere assistenza.

Per informazioni su GKE Inference Gateway, consulta GKE Inference Gateway.

Prerequisiti

Per raccogliere le metriche da l'esportatore di GKE Inference Gateway utilizzando Managed Service per Prometheus e la raccolta gestita, il deployment deve soddisfare i seguenti requisiti:

L'esportatore di GKE Inference Gateway espone automaticamente le metriche in formato Prometheus ; non devi installarlo separatamente.

Per verificare che l'esportatore di GKE Inference Gateway emetta metriche sugli endpoint previsti:

  1. Aggiungi un secret, un ServiceAccount, un ClusterRole e un ClusterBinding. Gli endpoint di osservabilità dell'esportatore di GKE Inference Gateway sono protetti da token di autenticazione. Per ottenere le credenziali, il client richiede un secret che esegua il mapping a un account di servizio con la regola nonResourceURLs: "/metrics", verbs: get di ClusterRole connesso. Per maggiori informazioni, consulta Creare un secret per un account di servizio.

  2. Configura l'inoltro della porta utilizzando il seguente comando:

    kubectl -n NAMESPACE_NAME port-forward POD_NAME 9090
    
  3. In un'altra finestra:

    1. Recupera il token eseguendo il seguente comando:

      TOKEN=$(kubectl -n default get secret inference-gateway-sa-metrics-reader-secret  -o jsonpath='{.secrets[0].name}' -o jsonpath='{.data.token}' | base64 --decode)
      
    2. Accedi all'endpoint localhost:9090/metrics utilizzando l'utilità curl:

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

Creare un secret per un account di servizio

Per l'endpoint dell'esportatore di GKE Inference Gateway protetto, l'operatore di Managed Service per Prometheus richiede un secret per la raccolta di metriche autorizzata nello spazio dei nomi gmp-system.

Se il cluster utilizza la modalità Autopilot, sostituisci gmp-system con gke-gmp-system.

Puoi utilizzare la seguente configurazione di Secret, ServiceAccount, ClusterRole e 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

Per maggiori informazioni, consulta la guida Metric & Observability dell'esportatore.

Per applicare le modifiche alla configurazione da un file locale, esegui il seguente comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Puoi anche utilizzare Terraform per gestire le configurazioni.

Definire una risorsa ClusterPodMonitoring

Per l'individuazione dei target, l'operatore di Managed Service per Prometheus richiede una risorsa ClusterPodMonitoring che corrisponda all'esportatore di GKE Inference Gateway nello stesso spazio dei nomi.

Puoi utilizzare la seguente configurazione di 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 uses the ClusterPodMonitoring resource instead of the PodMonitoring resource because it needs to access the secret from another namespace.

Nel selettore matchLabels della configurazione ClusterPodMonitoring, puoi sostituire il valore app di inference-gateway-ext-proc con le etichette del deployment di GKE Inference Gateway. Assicurati che i valori dei campi port e matchLabels corrispondano a quelli dei pod di GKE Inference Gateway che vuoi monitorare.

Per applicare le modifiche alla configurazione da un file locale, esegui il seguente comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Puoi anche utilizzare Terraform per gestire le configurazioni.

Verificare la configurazione

Puoi utilizzare Metrics Explorer per verificare di aver configurato correttamente l'esportatore di GKE Inference Gateway. Cloud Monitoring potrebbe impiegare uno o due minuti per inserire le metriche.

Per verificare che le metriche siano inserite:

  1. Nella Google Cloud console, vai alla  Esplora metriche pagina:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti del riquadro del generatore di query, seleziona il pulsante il cui nome è  PromQL.
  3. Inserisci ed esegui la seguente query:
    inference_model_request_total{cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Visualizzare dashboard

L'integrazione di Cloud Monitoring include la dashboard Panoramica di GKE Inference Gateway Prometheus. Le dashboard vengono installate automaticamente quando configuri l'integrazione. Puoi anche visualizzare le anteprime statiche delle dashboard senza installare l'integrazione.

Per visualizzare una dashboard installata:

  1. Nella Google Cloud console, vai alla pagina  Dashboard:

    Vai a Dashboard

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Seleziona la scheda Elenco dashboard.
  3. Scegli la categoria Integrazioni.
  4. Fai clic sul nome della dashboard, ad esempio Panoramica di GKE Inference Gateway Prometheus.

Per visualizzare un'anteprima statica della dashboard:

  1. Nella Google Cloud console, vai alla  pagina Integrazioni:

    Vai a Integrazioni

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Fai clic sul filtro della piattaforma di deployment Kubernetes Engine.
  3. Individua l'integrazione di GKE Inference Gateway e fai clic su Visualizza dettagli.
  4. Seleziona la scheda Dashboard.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi di inserimento delle metriche, consulta Problemi con la raccolta dagli esportatori in Risoluzione dei problemi relativi all'inserimento.