Expón métricas personalizadas para los balanceadores de cargas

En esta sección, se describe cómo enviar una o más métricas de un Pod o una carga de trabajo a tu balanceador de cargas.

Estas métricas provienen del servicio o la aplicación que estás ejecutando. Por ejemplo, consulta las métricas expuestas por el motor de vLLM.

Luego, el balanceador de cargas puede usar estos datos con el balanceo de cargas basado en la utilización para equilibrar las cargas de trabajo de manera más eficiente. Por ejemplo, puedes usar esta función para supervisar las regiones con un mayor uso de la carga de trabajo y, luego, permitir que el balanceador de cargas redireccione el tráfico hacia la región con más recursos disponibles. En el ejemplo de vLLM, una métrica que podría ser útil para hacer un seguimiento de la utilización es gpu_cache_usage_perc.

Requisitos

Los requisitos para los Pods son los siguientes:

Los requisitos para las métricas son los siguientes.

  • Se debe poder acceder a las métricas en un extremo HTTP.
  • El formato de las métricas debe ser el estándar de Prometheus.
  • Los balanceadores de cargas tienen restricciones en los nombres de las métricas. Por ejemplo, el nombre no puede superar los 64 caracteres. Para obtener la lista completa de restricciones, consulta los detalles sobre el campo backends[].customMetrics[].name en la referencia de la API para BackendService.

    Si la métrica de tu servicio no cumple con estas restricciones, puedes cambiarle el nombre con el campo exportName.

  • Solo se admiten las métricas de calibre entre 0 y 1, donde 1 representa el 100% de utilización.

  • Se ignoran las etiquetas de métricas, por lo que no se pueden usar para distinguir entre métricas. Asegúrate de que tu carga de trabajo no exponga la misma métrica con varias etiquetas.

  • Se puede exponer un máximo de 10 métricas por clúster. Otros servicios tienen sus propios límites. Por ejemplo, consulta los límites y requisitos de los balanceadores de cargas. Ten en cuenta que un clúster puede usar más de un balanceador de cargas.

Expón métricas para el balanceo de cargas

  1. Elige una métrica para exponer. Puedes elegir cualquier métrica que exponga tu servidor y que también cumpla con los requisitos que se indican en la sección anterior.

  2. Agrega el siguiente recurso personalizado y reemplaza los detalles específicos de tu métrica y Pod.

    apiVersion: autoscaling.gke.io/v1beta1
    kind: AutoscalingMetric
    metadata:
      name: NAME
      namespace:NAMESPACE
    spec:
      selector:
        matchLabels:
          name: APP_LABEL_NAME
      endpoints:
      - port: METRIC_PORT
        path: METRIC_PATH
        metrics:
        - name: METRIC
          exportName: METRIC_NEW_NAME
    

    Reemplaza lo siguiente para que coincida con tu carga de trabajo:

    • NAME: Es el nombre del objeto AutoscalingMetric.
    • NAMESPACE: Es el espacio de nombres en el que se encuentran los Pods.
    • APP_LABEL_NAME: Es la etiqueta que se usa para el Pod.
    • METRIC_PORT: Es el número de puerto.
    • METRIC_PATH: Es la ruta de acceso a la métrica. Verifica la ruta de acceso que usa tu servicio o aplicación. Esta ruta suele ser /metrics.
    • METRIC: Es el nombre de la métrica que expones.
    • Opcional: METRIC_NEW_NAME: Puedes usar este campo para cambiar el nombre de la métrica. Si el nombre de la métrica no cumple con las restricciones de nombres establecidas por el balanceador de cargas, usa este campo para cambiarle el nombre a uno válido.

      Para obtener la lista completa de restricciones, consulta los detalles sobre el campo backends[].customMetrics[].name en la referencia de la API para BackendService.

  3. Aplica el recurso con el siguiente comando:

    kubectl apply -f FILE_NAME.yaml
    

    Reemplaza FILE_NAME por el nombre del archivo YAML.

    Cuando agregues el recurso personalizado, la métrica se enviará a la API de ajuste de escala automático. La métrica se lee cada pocos segundos y se envía al balanceador de cargas.

Para exponer una segunda métrica, sigue los mismos pasos para crear otro recurso personalizado.

Ahora que expusiste las métricas al balanceador de cargas, puedes configurarlo para que las use. Para obtener más información, consulta Configura el balanceador de cargas para que use métricas personalizadas.

Para obtener más información sobre cómo trabajar con el balanceador de cargas, consulta Configura el balanceo de cargas basado en la utilización para los servicios de GKE.

Soluciona problemas relacionados con las métricas expuestas al balanceador de cargas

Para verificar que las métricas se expongan correctamente al balanceador de cargas, puedes hacer lo siguiente:

¿Qué sigue?