À propos des équilibreurs de charge basés sur l'utilisation pour les services GKE

Cette page présente l'équilibrage de charge basé sur l'utilisation pour les services Google Kubernetes Engine (GKE). Il évalue l'utilisation des ressources de vos pods de backend et utilise la capacité de charge de travail réelle pour rééquilibrer intelligemment le trafic. Cela permet d'accroître la disponibilité des applications et de bénéficier d'un routage flexible.

Cette page s'adresse aux architectes cloud et aux spécialistes de la mise en réseau qui gèrent des services sur GKE et souhaitent optimiser la distribution du trafic en fonction de l'utilisation des ressources en temps réel.

Avant de lire cette page, assurez-vous de connaître les éléments suivants :

Présentation

L'infrastructure Cloud Load Balancing achemine le trafic vers les services GKE en fonction de métriques d'accessibilité standards (y compris HTTP, HTTPS, HTTP/2 et gRPC) qui déterminent l'état et l'éligibilité des pods. Par défaut, il transfère le trafic vers tous les pods de backend opérationnels en tenant compte de la disponibilité des pods et des règles de répartition du trafic éventuellement définies, telles que GCPTrafficDistributionPolicy.

Les applications modernes suivent l'utilisation du processeur pour vous permettre de comprendre les coûts, de surveiller les performances et de gérer efficacement la capacité. Pour répondre à ce besoin, les équilibreurs de charge utilisent les données d'utilisation des ressources en temps réel comme métrique, ce qui leur permet de déterminer le volume de trafic optimal que chaque pod de backend peut traiter pour une distribution intelligente du trafic.

L'équilibrage de charge basé sur l'utilisation pour les services GKE évalue l'utilisation des ressources en tant que métrique pour déterminer la capacité des pods de backend à traiter le trafic des applications. Il rééquilibre ensuite le trafic vers d'autres backends si un ou plusieurs pods sont surexploités.

Fonctionnalités et avantages

L'équilibrage de charge basé sur l'utilisation offre les avantages suivants :

  • Augmente la disponibilité des applications : lorsque les backends sont sous pression, le trafic est dirigé en priorité vers les pods dont l'utilisation des ressources est plus faible. Cela permet de maintenir les performances des applications, d'éviter les ralentissements et les pannes, et de garantir une expérience fiable aux utilisateurs.

  • Routage flexible : fournit un ensemble supplémentaire de métriques qui vous permettent de définir des règles de distribution du trafic qui correspondent précisément à vos cas d'utilisation professionnels.

Fonctionnement de l'équilibrage de charge basé sur l'utilisation

L'équilibrage de charge basé sur l'utilisation pour les services GKE améliore la gestion du trafic pour vos applications exécutées dans GKE en rendant le processus plus réactif à la charge des ressources. Votre application s'exécute dans GKE en utilisant de nombreuses instances (pods) sur différentes machines. Il reçoit le trafic de deux manières principales :

  • Depuis l'extérieur de votre cluster (trafic nord-sud) : votre cluster reçoit du trafic provenant d'Internet ou d'autres sources externes, ce que l'on appelle le trafic nord-sud. Un équilibreur de charge (passerelle) géré par GKE redirige ce trafic depuis l'extérieur de votre cluster.

  • Depuis l'intérieur de votre cluster (trafic est-ouest) : votre cluster reçoit des flux de trafic entre différentes parties de votre application, depuis d'autres services de votre cluster GKE ou depuis plusieurs clusters. Ce flux de trafic interne est appelé trafic est-ouest.

L'équilibrage de charge basé sur l'utilisation pour les services GKE implique un processus continu, dans lequel les agents GKE collectent les métriques d'utilisation des pods qui permettent à l'infrastructure Cloud Load Balancing de distribuer intelligemment le trafic. Les étapes suivantes résument comment l'équilibrage de charge basé sur l'utilisation pour les services GKE gère le trafic de votre application en fonction de l'utilisation des ressources en temps réel :

  1. Lorsque vous configurez votre service GKE avec un équilibreur de charge d'application (passerelle), GKE crée automatiquement des NEG pour chaque zone et attribue les pods de votre application à ces NEG. Au départ, la répartition du trafic repose sur des vérifications de l'état de base et vos paramètres par défaut.

  2. Vous configurez votre service GKE pour qu'il utilise l'utilisation des ressources, comme le processeur, comme métrique clé pour l'équilibrage de charge.

    En plus de la métrique d'utilisation du processeur par défaut, vous pouvez exposer des métriques personnalisées de votre application pour que l'équilibreur de charge les utilise. L'utilisation de métriques provenant de votre application vous permet de définir vos propres signaux spécifiques à votre charge de travail. Par exemple, vous pouvez utiliser gpu_cache_usage_perc metric à partir d'une charge de travail vLLM pour aider l'équilibreur de charge à diriger le trafic vers la région disposant de plus de ressources disponibles. Pour savoir comment exposer des métriques personnalisées pour votre équilibreur de charge, consultez Exposer des métriques personnalisées pour les équilibreurs de charge.

  3. Un agent GKE spécial surveille en permanence l'utilisation des ressources de vos pods (par exemple, le processeur) et envoie régulièrement ces données à l'infrastructure Cloud Load Balancing. Si un pod comporte plusieurs conteneurs, l'agent calcule leur utilisation combinée.

  4. L'infrastructure Cloud Load Balancing analyse les données d'utilisation en temps réel pour ajuster dynamiquement la distribution du trafic. Il détermine la quantité de trafic à envoyer à chaque groupe de pods (chaque NEG zonal) en évaluant leur utilisation moyenne des ressources (comme la charge du processeur) et d'autres facteurs tels que la latence du réseau. Ce processus transfère automatiquement le trafic des pods à charge élevée vers ceux à charge faible, ce qui garantit une utilisation efficace des ressources dans la région la plus proche.

L'exemple suivant montre comment fonctionne l'équilibrage de charge basé sur l'utilisation.

Exemple : Gérer les pods surutilisés

Lorsque votre service exécute plusieurs conteneurs dans le même pod, l'agent de métriques GKE indique l'utilisation des ressources de chaque conteneur séparément. L'infrastructure Cloud Load Balancing calcule ensuite une moyenne pondérée de leur utilisation pour obtenir la capacité totale du pod.

Équilibrage de charge basé sur l'utilisation pour les services GKE.
Figure 1  : Distribution intelligente du trafic en fonction de l'utilisation du processeur du backend dans une configuration d'équilibreur de charge gérée par GKE.

La figure 1 montre comment Cloud Load Balancing utilise les métriques d'utilisation du processeur en temps réel de GKE pour optimiser la répartition du trafic entre les pods déployés dans plusieurs zones. La requête client est acheminée via la passerelle GKE vers les pods de backend regroupés dans des NEG répartis sur trois zones.

  • Dans la zone 1, le pod indique une utilisation du processeur de 90 %. L'équilibreur de charge réduit le trafic vers ce pod pour éviter la surcharge.

  • Dans la zone 2, le pod est moyennement utilisé (60 % du processeur) et continue de recevoir du trafic.

  • Dans la zone 3, le pod signale une faible utilisation du processeur (40 %) et peut recevoir plus de trafic. GKE envoie en continu des métadonnées et des métriques d'utilisation à l'infrastructure Cloud Load Balancing, qui ajuste intelligemment le routage du trafic pour maintenir les performances et la disponibilité des applications.

Imaginons que votre service soit configuré pour une utilisation maximale du processeur de 80 %. Si les pods de la zone 1 signalent une utilisation du processeur de 90 %, ce qui dépasse le seuil, les événements suivants se produisent :

  1. L'infrastructure Cloud Load Balancing détecte cette surutilisation.
  2. Il rééquilibre ensuite intelligemment le trafic et réduit la quantité de trafic qu'il envoie aux pods de la zone 1. Ce rééquilibrage se poursuit jusqu'à ce que l'utilisation moyenne du processeur pour les pods de cette zone repasse en dessous du seuil d'utilisation de 80 %.
  3. Comme les pods de la zone 1 signalent une utilisation du processeur plus faible (en dessous du seuil de 80 %), l'infrastructure Cloud Load Balancing réévalue la répartition du trafic. Il rééquilibre ensuite progressivement le trafic entre tous les pods qui soutiennent le service et continue de distribuer le trafic de manière efficace en fonction de l'utilisation.

Étapes suivantes