En esta sección se describe cómo enviar una o varias métricas de un pod o una carga de trabajo a su balanceador de carga.
Estas métricas proceden del servicio o la aplicación que estés ejecutando. Por ejemplo, consulta las métricas expuestas por vLLM Engine.
El balanceador de carga puede usar estos datos con el balanceo de carga basado en la utilización para equilibrar las cargas de trabajo de forma más eficiente. Por ejemplo, puedes usar esta función para monitorizar las regiones con un uso más intenso de la carga de trabajo y, a continuación, permitir que el balanceador de carga redirija 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 monitorizar el uso es gpu_cache_usage_perc
.
Requisitos
Estos son los requisitos de los pods:
- GKE 1.34.1-gke.1127000 o una versión posterior con clústeres en el canal rápido.
- La API Gateways está habilitada.
- Usar el autoescalado horizontal de pods con el perfil de rendimiento.
Estos son los requisitos de las métricas.
- Se debe poder acceder a las métricas a través de un endpoint HTTP.
- Las métricas deben tener el formato estándar de Prometheus.
Los balanceadores de carga tienen restricciones en los nombres de las métricas. Por ejemplo, el nombre no puede tener más de 64 caracteres. Para ver la lista completa de restricciones, consulta los detalles del campo
backends[].customMetrics[].name
en la referencia de la API deBackendService
.Si la métrica de tu servicio no cumple estas restricciones, puedes cambiarle el nombre con el campo
exportName
.Solo se admiten métricas de tipo Gauge entre 0 y 1, donde 1 representa una utilización del 100%.
Las etiquetas de métricas se ignoran, 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 pueden 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 carga. Ten en cuenta que un clúster puede usar más de un balanceador de carga.
Exponer métricas para el balanceo de carga
Elige una métrica que quieras exponer. Puedes elegir cualquier métrica que exponga tu servidor y que cumpla los requisitos indicados en la sección anterior.
Añade el siguiente recurso personalizado y sustituye los detalles específicos de tu métrica y tu 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
Sustituye los siguientes valores para que coincidan con tu carga de trabajo:
NAME
: nombre del objeto AutoscalingMetric.NAMESPACE
: el espacio de nombres en el que se encuentran los pods.APP_LABEL_NAME
: la etiqueta usada para el pod.METRIC_PORT
: número de puerto.METRIC_PATH
: la ruta a la métrica. Verifica la ruta que usa tu servicio o aplicación. Esta ruta suele ser/metrics
.METRIC
: el nombre de la métrica que está exponiendo.Opcional:
METRIC_NEW_NAME
: puede usar este campo para cambiar el nombre de la métrica. Si el nombre de la métrica no cumple las restricciones de nombre definidas por el balanceador de carga, utilice este campo para cambiarle el nombre por uno válido.Para ver la lista completa de restricciones, consulta los detalles del campo
backends[].customMetrics[].name
en la referencia de la API deBackendService
.
Aplica el recurso con el siguiente comando:
kubectl apply -f FILE_NAME.yaml
Sustituye
FILE_NAME
por el nombre del archivo YAML.Cuando hayas añadido el recurso personalizado, la métrica se enviará a la API de escalado automático. La métrica se lee cada pocos segundos y se envía al balanceador de carga.
Para exponer una segunda métrica, sigue los mismos pasos para crear otro recurso personalizado.
Ahora que ha expuesto las métricas al balanceador de carga, puede configurarlo para que las use. Para obtener más información, consulta Configurar el balanceador de carga para que use métricas personalizadas.
Para obtener más información sobre cómo trabajar con el balanceador de carga, consulta Configurar el balanceo de carga basado en la utilización para servicios de GKE.
Solucionar problemas de las métricas expuestas al balanceador de carga
Para verificar que las métricas se exponen correctamente al balanceador de carga, puedes hacer lo siguiente:
- Verifica los registros del agente de métricas de GKE. Si se ha producido un error al intentar exponer las métricas, es posible que los registros hayan indicado que hay un error. Para obtener más información sobre cómo buscar errores, consulta Solucionar problemas de métricas del sistema.
- Puedes usar el balanceador de carga en modo de prueba para ver todas las métricas que recibe. Para obtener más información sobre cómo probar las métricas con la marca
dryRun
, consulte Configurar el balanceador de carga para que use métricas personalizadas.
Siguientes pasos
- Para obtener más información sobre el balanceo de carga basado en la utilización, consulta Información sobre los balanceadores de carga basados en la utilización para los servicios de GKE.
- Consulta cómo configurar el balanceo de carga basado en la utilización para los servicios de GKE.