Cette section explique comment envoyer une ou plusieurs métriques d'un pod ou d'une charge de travail à votre équilibreur de charge.
Ces métriques proviennent du service ou de l'application que vous exécutez. Par exemple, consultez les métriques exposées par le moteur vLLM.
L'équilibreur de charge peut ensuite utiliser ces données avec l'équilibrage de charge basé sur l'utilisation pour équilibrer les charges de travail plus efficacement. Par exemple, vous pouvez utiliser cette fonctionnalité pour surveiller les régions où l'utilisation de la charge de travail est plus importante, puis autoriser l'équilibreur de charge à rediriger le trafic vers la région disposant de plus de ressources disponibles. Dans l'exemple vLLM, une métrique qui pourrait être utile pour suivre l'utilisation est gpu_cache_usage_perc
.
Conditions requises
Voici les exigences concernant les pods.
- GKE 1.34.1-gke.1127000 ou version ultérieure avec des clusters dans le canal rapide".
- L'API Gateways est activée.
- Utiliser l'autoscaling horizontal des pods avec le profil de performances.
Les exigences concernant les métriques sont les suivantes.
- Les métriques doivent être accessibles sur un point de terminaison HTTP.
- Le format des métriques doit être conforme à la norme Prometheus.
Les équilibreurs de charge imposent des restrictions sur les noms de métriques. Par exemple, le nom ne peut pas dépasser 64 caractères. Pour obtenir la liste complète des restrictions, consultez les détails du champ
backends[].customMetrics[].name
dans la documentation de référence de l'API pourBackendService
.Si la métrique de votre service ne respecte pas ces restrictions, vous pouvez la renommer à l'aide du champ
exportName
.Seules les métriques de type "gauge" comprises entre 0 et 1 sont acceptées. La valeur 1 représente une utilisation de 100 %.
Les libellés de métriques sont ignorés. Vous ne pouvez donc pas les utiliser pour distinguer les métriques. Assurez-vous que votre charge de travail n'expose pas la même métrique avec plusieurs libellés.
Vous pouvez exposer jusqu'à 10 métriques par cluster. D'autres services ont leurs propres limites. Par exemple, consultez les limites et exigences concernant les équilibreurs de charge. Notez qu'un cluster peut utiliser plusieurs équilibreurs de charge.
Exposer les métriques pour l'équilibrage de charge
Choisissez une métrique à exposer. Vous pouvez choisir n'importe quelle métrique exposée par votre serveur et qui répond également aux exigences listées dans la section précédente.
Ajoutez la ressource personnalisée suivante, en remplaçant les détails spécifiques à votre métrique et à votre 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
Remplacez les éléments suivants pour qu'ils correspondent à votre charge de travail :
NAME
: nom de l'objet AutoscalingMetric.NAMESPACE
: espace de noms dans lequel se trouvent les pods.APP_LABEL_NAME
: libellé utilisé pour le pod.METRIC_PORT
: numéro de port.METRIC_PATH
: chemin d'accès à la métrique. Vérifiez le chemin d'accès utilisé par votre service ou application. Il s'agit souvent de/metrics
.METRIC
: nom de la métrique que vous exposez.Facultatif :
METRIC_NEW_NAME
: vous pouvez utiliser ce champ pour renommer la métrique. Si le nom de la métrique ne respecte pas les restrictions de nom définies par l'équilibreur de charge, utilisez ce champ pour le renommer avec un nom valide.Pour obtenir la liste complète des restrictions, consultez les détails du champ
backends[].customMetrics[].name
dans la documentation de référence de l'API pourBackendService
.
Appliquez la ressource à l'aide de la commande suivante :
kubectl apply -f FILE_NAME.yaml
Remplacez
FILE_NAME
par le nom du fichier YAML.Une fois la ressource personnalisée ajoutée, la métrique est envoyée à l'API Autoscaling. La métrique est lue toutes les quelques secondes et envoyée à l'équilibreur de charge.
Pour exposer une deuxième métrique, suivez les mêmes étapes pour créer une autre ressource personnalisée.
Maintenant que vous avez exposé les métriques à l'équilibreur de charge, vous pouvez le configurer pour qu'il les utilise. Pour en savoir plus, consultez Configurer l'équilibreur de charge pour qu'il utilise des métriques personnalisées.
Pour en savoir plus sur l'utilisation de l'équilibreur de charge, consultez Configurer l'équilibrage de charge basé sur l'utilisation pour les services GKE.
Résoudre les problèmes liés aux métriques exposées à l'équilibreur de charge
Pour vérifier que les métriques sont correctement exposées à l'équilibreur de charge, vous pouvez procéder comme suit :
- Vérifiez les journaux dans l'agent de métriques GKE. Si une erreur s'est produite lors de la tentative d'exposition des métriques, les journaux peuvent l'indiquer. Pour savoir comment rechercher les erreurs, consultez Résoudre les problèmes liés aux métriques système.
- Vous pouvez utiliser l'équilibreur de charge en mode de simulation pour examiner toutes les métriques qu'il reçoit. Pour en savoir plus sur le test des métriques à l'aide de l'indicateur
dryRun
, consultez Configurer l'équilibreur de charge pour utiliser des métriques personnalisées.
Étapes suivantes
- Pour en savoir plus sur l'équilibrage de charge basé sur l'utilisation, consultez À propos des équilibreurs de charge basés sur l'utilisation pour les services GKE.
- Découvrez comment configurer l'équilibrage de charge basé sur l'utilisation pour les services GKE.