En este documento se explica cómo ver las métricas de TPU en el panel de control de Ray con KubeRay en Google Kubernetes Engine (GKE). En un clúster de GKE con el complemento Ray GKE, las métricas de TPU están disponibles en Cloud Monitoring.
Antes de empezar
Antes de empezar, asegúrate de que has realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la CLI de gcloud, obtén la versión más reciente ejecutando el comando
gcloud components update. Es posible que las versiones anteriores de la interfaz de línea de comandos de gcloud no admitan la ejecución de los comandos de este documento.
Tienes un clúster de GKE que cumple las siguientes condiciones:
- Un grupo de nodos configurado para usar TPUs.
- El complemento Ray on GKE no debe estar habilitado en este clúster.
- Una carga de trabajo de servicio o entrenamiento en GKE que usa Ray y TPUs.
Si necesitas crear un clúster con estas condiciones, elige una carga de trabajo de TPU de ejemplo, como Entrenar un LLM con JAX, Ray Train y TPU Trillium en GKE o Servir un LLM con TPUs en GKE con KubeRay, y sigue los pasos de configuración para configurar un clúster.
Prepara tu entorno
En este tutorial, usarás Cloud Shell, un entorno de shell para gestionar recursos alojados enGoogle Cloud.
Cloud Shell tiene preinstaladas la CLI de Google Cloud y la herramienta de línea de comandos kubectl. La CLI de gcloud proporciona la interfaz de línea de comandos principal de Google Cloud, y kubectl proporciona la interfaz de línea de comandos principal para ejecutar comandos en clústeres de Kubernetes.
Abre Cloud Shell:
Ve a la Google Cloud consola.
En la esquina superior derecha de la consola, haz clic en el botón Activar Cloud Shell:

Se abrirá una sesión de Cloud Shell en un marco de la parte inferior de la consola.
Esta shell se usa para ejecutar comandos gcloud y kubectl.
Antes de ejecutar comandos, define tu proyecto predeterminado en la CLI de Google Cloud
con el siguiente comando:
gcloud config set project PROJECT_ID
Sustituye PROJECT_ID por el ID del proyecto.
Ver métricas de TPU en el panel de control de Ray
Para ver las métricas de TPU en el panel de control de Ray, haz lo siguiente:
En tu shell, habilita las métricas en el panel de control de Ray instalando la pila de Prometheus de Kubernetes.
./install/prometheus/install.sh --auto-load-dashboard true kubectl get all -n prometheus-systemEl resultado debería ser similar al siguiente:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/prometheus-grafana 1/1 1 1 46s deployment.apps/prometheus-kube-prometheus-operator 1/1 1 1 46s deployment.apps/prometheus-kube-state-metrics 1/1 1 1 46sEsta instalación usa un gráfico de Helm para añadir las definiciones de recursos personalizados (CRDs), un monitor de pods y un monitor de servicios para pods de Ray a tu clúster.
Instala el operador KubeRay v1.5.0 o una versión posterior con la función de recolección de métricas habilitada. Para ver las métricas de TPU en Grafana con los paneles predeterminados que se proporcionan en KubeRay, debes instalar KubeRay 1.5.0 o una versión posterior.
helm repo add kuberay https://ray-project.github.io/kuberay-helm/ helm install kuberay-operator kuberay/kuberay-operator --version 1.5.0-rc.0 \ --set metrics.serviceMonitor.enabled=true \ --set metrics.serviceMonitor.selector.release=prometheusInstala el webhook de TPU de KubeRay. Este webhook define una variable de entorno
TPU_DEVICE_PLUGIN_HOST_IPque Ray usa para sondear las métricas de TPU del DaemonSettpu-device-plugin.helm install kuberay-tpu-webhook \ oci://us-docker.pkg.dev/ai-on-gke/kuberay-tpu-webhook-helm/kuberay-tpu-webhook \ --set tpuWebhook.image.tag=v1.2.6-gke.0Para preparar tu carga de trabajo para registrar las métricas, define los siguientes puertos y variables de entorno en la especificación de RayCluster:
headGroupSpec: ... ports: ... - containerPort: 44217 name: as-metrics - containerPort: 44227 name: dash-metrics env: - name: RAY_GRAFANA_IFRAME_HOST value: http://127.0.0.1:3000 - name: RAY_GRAFANA_HOST value: http://prometheus-grafana.prometheus-system.svc:80 - name: RAY_PROMETHEUS_HOST value: http://prometheus-kube-prometheus-prometheus.prometheus-system.svc:9090Ejecuta una carga de trabajo con TPUs mediante Ray. Puedes usar una carga de trabajo de TPU de ejemplo, como Entrenar un LLM con JAX, Ray Train y TPU Trillium en GKE o Servir un LLM con TPUs en GKE con KubeRay.
Ver las métricas en el panel de control de Ray o en Grafana
Para conectarte al RayCluster, reenvía el servicio principal de Ray:
kubectl port-forward service/RAY_CLUSTER_NAME-head-svc 8265:8265Sustituye
RAY_CLUSTER_NAMEpor el nombre de tu RayCluster. Si tu carga de trabajo procede del tutorial Entrenar un LLM con JAX, Ray Train y TPU Trillium en GKE, este valor esmaxtext-tpu-cluster.Para ver el panel de control de Ray, ve a
http://localhost:8265/en tu máquina local.Redirige los puertos de la interfaz web de Grafana. Debes reenviar el puerto de Grafana para ver las métricas de TPU, que se muestran en los paneles de control de Grafana insertados en el panel de control de Ray.
kubectl port-forward -n prometheus-system service/prometheus-grafana 3000:http-webEn el panel de control de Ray, abre la pestaña Métricas y busca la pestaña Utilización de TPU por nodo. Cuando las TPUs están en funcionamiento, las métricas por nodo de uso de Tensor Core, uso de HBM, ciclo de trabajo de TPU y uso de memoria se envían al panel de control. Para ver estas métricas en Grafana, vaya a la pestaña Ver en Grafana.

Para ver los registros de
libtpu, vaya a la pestaña Registros del panel de control de Ray y seleccione el nodo de TPU. Los registros de libtpu se escriben en el directorio/tpu_logs.
Para obtener más información sobre cómo configurar el registro de TPUs, consulta Depurar registros de VMs de TPU.
Siguientes pasos
- Consulta cómo recoger y ver registros y métricas de clústeres de Ray en Google Kubernetes Engine (GKE).
- Consulta cómo ver los registros de Ray Operator.