GKE Inference Gateway

Este documento descreve como configurar a implementação do Google Kubernetes Engine para que possa usar o Google Cloud Managed Service for Prometheus para recolher métricas do GKE Inference Gateway. Este documento mostra como fazer o seguinte:

  • Configure o GKE Inference Gateway para comunicar métricas.
  • Aceda a um painel de controlo no Cloud Monitoring para ver as métricas.

Estas instruções aplicam-se apenas se estiver a usar a recolha gerida com o serviço gerido para Prometheus. Se estiver a usar a recolha implementada automaticamente, consulte a documentação do GKE Inference Gateway para obter informações de instalação.

Estas instruções são fornecidas como exemplo e espera-se que funcionem na maioria dos ambientes do Kubernetes. Se estiver com problemas na instalação de uma aplicação ou de um exportador devido a políticas organizacionais ou de segurança restritivas, recomendamos que consulte a documentação de código aberto para receber apoio técnico.

Para consultar informações sobre o GKE Inference Gateway, consulte o artigo GKE Inference Gateway.

Pré-requisitos

Para recolher métricas do exportador do GKE Inference Gateway através do Managed Service for Prometheus e da recolha gerida, a sua implementação tem de cumprir os seguintes requisitos:

  • O cluster tem de estar a executar a versão 1.28.15-gke.2475000 ou posterior do Google Kubernetes Engine.
  • Tem de estar a executar o Managed Service for Prometheus com a recolha gerida ativada. Para mais informações, consulte o artigo Comece a usar a recolha gerida.

O exportador do GKE Inference Gateway expõe automaticamente métricas no formato Prometheus. Não tem de o instalar separadamente.

Para verificar se o exportador do gateway de inferência do GKE está a emitir métricas nos endpoints esperados, faça o seguinte:

  1. Adicione um segredo, uma ServiceAccount, um ClusterRole e um ClusterBinding. Os pontos finais de observabilidade do exportador do GKE Inference Gateway estão protegidos pelo token de autorização. Para obter credenciais, o cliente requer um segredo que seja mapeado para uma conta de serviço com o ClusterRole associado, para a regra nonResourceURLs: "/metrics", verbs: get. Para mais informações, consulte o artigo Crie um segredo para uma conta de serviço.

  2. Configure o encaminhamento de portas com o seguinte comando:

    kubectl -n NAMESPACE_NAME port-forward POD_NAME 9090
    
  3. Noutra janela, faça o seguinte:

    1. Obtenha o token executando o seguinte 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. Aceda ao ponto final localhost:9090/metrics através do utilitário curl:

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

Crie um segredo para uma conta de serviço

Para o ponto final do exportador do gateway de inferência do GKE protegido, o Managed Service for Prometheus Operator requer um segredo para a recolha de métricas autorizada no espaço de nomes gmp-system.

Se o seu cluster estiver a usar o modo Autopilot, substitua gmp-system por gke-gmp-system.

Pode usar a seguinte configuração de 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

Para mais informações, consulte o guia de métricas e observabilidade do exportador.

Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Também pode usar o Terraform para gerir as suas configurações.

Defina um recurso ClusterPodMonitoring

Para a deteção de alvos, o Managed Service for Prometheus Operator requer um recurso ClusterPodMonitoring que corresponda ao exportador do GKE Inference Gateway no mesmo espaço de nomes.

Pode usar a seguinte configuração 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

O GKE Inference Gateway usa o recurso ClusterPodMonitoring em vez do recurso PodMonitoring porque precisa de aceder ao segredo de outro espaço de nomes.

No seletor matchLabels da configuração ClusterPodMonitoring, pode substituir o valor app de inference-gateway-ext-proc por etiquetas da sua implementação do GKE Inference Gateway. Certifique-se de que os valores dos campos port e matchLabels correspondem aos dos pods do GKE Inference Gateway que quer monitorizar.

Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Também pode usar o Terraform para gerir as suas configurações.

Valide a configuração

Pode usar o Explorador de métricas para verificar se configurou corretamente o exportador do gateway de inferência do GKE. O Cloud Monitoring pode demorar um ou dois minutos a carregar as suas métricas.

Para verificar se as métricas são carregadas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão cujo nome é  MQL ou  PromQL.
  3. Verifique se a opção PromQL está selecionada no botão Idioma. O botão para alternar o idioma encontra-se na mesma barra de ferramentas que lhe permite formatar a consulta.
  4. Introduza e execute a seguinte consulta:
    inference_model_request_total{cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Veja painéis de controlo

A integração do Cloud Monitoring inclui o painel de controlo GKE Inference Gateway Prometheus Overview. Os painéis de controlo são instalados automaticamente quando configura a integração. Também pode ver pré-visualizações estáticas de painéis de controlo sem instalar a integração.

Para ver um painel de controlo instalado, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Painéis de controlo:

    Aceda a Painéis de controlo

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Selecione o separador Lista do painel de controlo.
  3. Escolha a categoria Integrações.
  4. Clique no nome do painel de controlo, por exemplo, GKE Inference Gateway Prometheus Overview.

Para ver uma pré-visualização estática do painel de controlo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Integrações:

    Aceda a Integrações

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Clique no filtro de plataforma de implementação Kubernetes Engine.
  3. Localize a integração do GKE Inference Gateway e clique em Ver detalhes.
  4. Selecione o separador Painéis de controlo.

Resolução de problemas

Para informações sobre a resolução de problemas de carregamento de métricas, consulte a secção Problemas com a recolha de exportadores em Resolução de problemas do lado do carregamento.