Cette page offre un aperçu général de la manière dont Google Kubernetes Engine (GKE) crée et gère Cloud Load Balancing. Sur cette page, nous partons du principe que vous connaissez les éléments suivants :
- Types d'Trusted Cloud by S3NS équilibreurs de charge
- Différence entre les équilibreurs de charge de couche 4 (équilibreurs de charge réseau) et de couche 7 (équilibreurs de charge d'application)
Cette page s'adresse aux architectes cloud et aux spécialistes de la mise en réseau qui conçoivent et implémentent le réseau pour leur organisation. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Trusted Cloud , consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Comment GKE crée des équilibreurs de charge
Pour rendre vos applications accessibles depuis l'extérieur du cluster (utilisateurs externes) ou au sein de votre réseau privé (utilisateurs internes), vous pouvez les exposer en provisionnant des équilibreurs de charge à l'aide des API Gateway, Ingress et Service. Vous pouvez également créer vous-même les composants de l'équilibreur de charge, tandis que GKE gère les groupes de points de terminaison du réseau (NEG) qui connectent votre équilibreur de charge aux pods de votre cluster.
Passerelle
Le contrôleur GKE Gateway est l'implémentation par Google de l'API Kubernetes Gateway pour Cloud Load Balancing. L'API Gateway est un projet Open Source visant à standardiser la façon dont les mailles de service et les contrôleurs d'entrée exposent les applications dans Kubernetes. Il est conçu pour être un successeur plus expressif, flexible et extensible de la ressource Ingress.
Le contrôleur GKE Gateway est utilisé pour configurer des équilibreurs de charge d'application de couche 7 afin d'exposer le trafic HTTP(S) aux applications qui s'exécutent dans le cluster.
Utilisez l'API Gateway pour implémenter votre équilibreur de charge.
Entrée
Le contrôleur GKE Ingress est l'implémentation par Google de l'API Ingress. L'API Ingress vous permet de gérer l'accès externe aux services qui s'exécutent dans un cluster. Lorsque vous créez une ressource Ingress dans GKE, le contrôleur configure automatiquement un équilibreur de charge d'application de couche 7 qui permet au trafic HTTP ou HTTP(S) d'atteindre vos applications exécutées dans le cluster.
GKE Gateway est le choix recommandé pour les nouveaux déploiements et les applications qui nécessitent une gestion avancée du trafic, une compatibilité multiprotocole ou une meilleure architecture mutualisée. Toutefois, GKE Ingress est une option viable pour les scénarios de routage HTTP/HTTPS plus simples, en particulier pour les configurations existantes où les avantages de la migration vers l'API Gateway ne compensent peut-être pas encore l'effort.
Des services LoadBalancer
L'API Service vous permet d'exposer les applications qui s'exécutent en tant que pods dans votre cluster au trafic externe ou interne. Lorsque vous créez un service de type LoadBalancer
, GKE crée automatiquement un équilibreur de charge réseau passthrough de couche 4 (TCP/UDP) en fonction des paramètres de votre fichier manifeste du service.
Dans les équilibreurs de charge réseau passthrough, lorsque le trafic atteint vos VM de backend, les adresses IP source et de destination d'origine, le protocole de communication (comme TCP ou UDP) et les numéros de port (si le protocole les utilise) restent les mêmes. Cela signifie que le trafic est directement transmis aux VM ou aux pods de backend, et que l'équilibreur de charge n'interrompt pas les connexions. Les services de backend gèrent la fin des connexions et veillent à ce que le trafic circule de manière fluide du client au service.
Équilibrage de charge pondéré
Si vous avez configuré un service LoadBalancer externe auquel les clients en dehors de votre réseau VPC et les VM Trusted Cloud peuvent accéder, vous pouvez activer l'équilibrage de charge pondéré. L'équilibrage de charge pondéré répartit le trafic en fonction du nombre de pods de diffusion sur chaque nœud GKE. Les nœuds qui comportent plus de pods de diffusion reçoivent donc une plus grande proportion de trafic que ceux qui en comportent moins.
NEG autonomes
Une autre méthode pour gérer vos équilibreurs de charge dans GKE consiste à créer vous-même les composants de l'équilibreur de charge et à laisser GKE gérer les NEG. Ce type d'équilibreur de charge est appelé "équilibreur de charge réseau proxy". Les NEG permettent de représenter des groupes de points de terminaison de backend (par exemple, des pods) pour l'équilibrage de charge.
Ce type d'équilibreur de charge est destiné uniquement au trafic TCP. Les équilibreurs de charge réseau proxy distribuent le trafic TCP vers les backends de votre réseau VPC ou d'autres environnements cloud. Le trafic est arrêté au niveau de la couche d'équilibrage de charge. L'équilibreur de charge transfère ensuite le trafic en établissant de nouvelles connexions TCP au backend disponible le plus proche.
Qu'est-ce que l'équilibrage de charge natif en conteneurs ?
L'équilibrage de charge natif en conteneurs consiste à répartir uniformément le trafic directement vers les adresses IP des pods individuels (plutôt que vers les nœuds) à l'aide des NEG GCE_VM_IP_PORT
. Les NEG GCE_VM_IP_PORT
vous permettent de spécifier des points de terminaison de backend à l'aide de l'adresse IP interne principale d'une machine virtuelle (VM) Compute Engine ou d'une adresse IP de l'une des plages d'adresses IP d'alias configurées de la VM.
L'équilibrage de charge natif en conteneurs est utilisé pour tous les équilibreurs de charge de couche 7 gérés par GKE, y compris les ressources Gateway et Ingress, et les NEG autonomes. Les services LoadBalancer n'utilisent pas l'équilibrage de charge natif en conteneurs. Toutefois, vous pouvez obtenir une fonctionnalité similaire en activant l'équilibrage de charge pondéré.
L'équilibrage de charge natif en conteneurs présente plusieurs avantages, y compris l'amélioration des performances réseau et des vérifications de l'état, car il cible directement les pods. Pour en savoir plus, consultez Équilibrage de charge natif en conteneurs.
Tableaux récapitulatifs
Utilisez les tableaux suivants pour planifier la configuration de l'équilibrage de charge.
Choisir un type d'équilibreur de charge
Le tableau suivant indique le type d'équilibreur de charge créé pour une ressource donnée (service Gateway, Ingress ou LoadBalancer) :
Ressource Kubernetes | Type d'équilibreur de charge créé | |
---|---|---|
Équilibreur de charge d'application | Équilibreur de charge réseau passthrough | |
Passerelle | ||
Entrée | ||
Service LoadBalancer |
Choisir une méthode pour créer un équilibreur de charge
Le tableau suivant présente les options disponibles dans GKE pour créer l'équilibreur de charge de votre choix :
Type d'équilibreur de charge | Méthodes pour créer l'équilibreur de charge choisi | |||
---|---|---|---|---|
Passerelle | Entrée | Service LoadBalancer | NEG autonomes | |
Équilibreur de charge d'application externe global | ||||
Équilibreur de charge d'application externe classique | ||||
Équilibreur de charge d'application externe régional | ||||
Équilibreur de charge d'application interne régional | ||||
Équilibreur de charge d'application interne interrégional | ||||
Équilibreur de charge réseau proxy
(tous les types) |
||||
Équilibreur de charge réseau passthrough
(interne et externe) |
Étapes suivantes
- En savoir plus sur l'API Gateway dans GKE
- En savoir plus sur GKE Ingress
- En savoir plus sur les services LoadBalancer