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:
- GKE 1.34.1-gke.1127000 o posterior con clústeres en el canal rápido
- La API de Gateways está habilitada.
- Usar el ajuste de escala automático horizontal de Pods con el perfil de rendimiento
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 paraBackendService
.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
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.
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 paraBackendService
.
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:
- Verifica los registros en el agente de métricas de GKE. Si se produjo 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 Soluciona problemas relacionados con las métricas del sistema.
- Puedes usar el balanceador de cargas en modo de ejecución de prueba para consultar todas las métricas que recibe. Para obtener más información sobre cómo probar las métricas con la marca
dryRun
, consulta Configura el balanceador de cargas para que use métricas personalizadas.
¿Qué sigue?
- Para obtener más detalles sobre el balanceo de cargas basado en la utilización, consulta Acerca de los balanceadores de cargas basados en la utilización para los servicios de GKE.
- Obtén más información para configurar el balanceo de cargas basado en la utilización para los servicios de GKE.