BLOG | NGINX

Équilibrage de charge du trafic TCP et UDP dans Kubernetes avec NGINX

NGINX-Partie-de-F5-horiz-black-type-RGB
Miniature d'Amir Rawdat
Amir Rawdat
Publié le 07 juin 2022

[ Editeur – Cet article est un extrait de notre eBook complet, Managing Kubernetes Traffic with F5 NGINX : Un guide pratique . [Téléchargez-le gratuitement dès aujourd'hui .]

Outre le trafic HTTP, NGINX Ingress Controller équilibre la charge du trafic TCP et UDP, ce qui vous permet de l'utiliser pour gérer le trafic d'une large gamme d'applications et d'utilitaires basés sur ces protocoles, notamment :

  • MySQL, LDAP et MQTT – Applications basées sur TCP utilisées par de nombreuses applications populaires
  • DNS, Syslog et RADIUS – Utilitaires basés sur UDP utilisés par les périphériques périphériques et les applications non transactionnelles

L'équilibrage de charge TCP et UDP avec NGINX Ingress Controller est également une solution efficace pour distribuer le trafic réseau aux applications Kubernetes dans les circonstances suivantes :

  • Vous utilisez le chiffrement de bout en bout (EE2E) et laissez l'application gérer le chiffrement et le déchiffrement plutôt que NGINX Ingress Controller
  • Vous avez besoin d’un équilibrage de charge hautes performances pour les applications basées sur TCP ou UDP
  • Vous souhaitez minimiser la quantité de modifications lors de la migration d'un équilibreur de charge réseau (TCP/UDP) existant vers un environnement Kubernetes

NGINX Ingress Controller inclut deux ressources NGINX Ingress qui assurent l’équilibrage de charge TCP/UDP :

  • Les administrateurs de cluster utilisent généralement les ressources GlobalConfiguration pour définir les ports TCP/UDP (listeners) accessibles aux équipes DevOps. Sachez qu’un déploiement du contrôleur NGINX Ingress ne peut inclure qu’une seule ressource GlobalConfiguration.
  • TransportServer sert aux équipes DevOps à configurer l'équilibrage de charge TCP/UDP pour leurs applications. NGINX Ingress Controller n’écoute que les ports définis par l’administrateur dans la ressource GlobalConfiguration. Cela évite les conflits de ports et renforce la sécurité en limitant l’exposition des services publics externes aux seuls ports validés comme sûrs par l’administrateur.

Le schéma ci-dessous illustre un cas d’usage typique des ressources GlobalConfiguration et TransportServer. Dans gc.yaml, vous définissez les écouteurs TCP et UDP dans une ressource GlobalConfiguration en tant qu’administrateur du cluster. Dans ts.yaml, un ingénieur DevOps utilise l’écouteur TCP dans une ressource TransportServer pour diriger le trafic vers un déploiement MySQL.

Diagramme de topologie illustrant l’utilisation des ressources GlobalConfiguration et TransportServer

La ressource GlobalConfiguration dans gc.yaml décrit deux écouteurs : un écouteur UDP sur le port 514 pour se connecter à un service syslog et un écouteur TCP sur le port 5353 pour se connecter à un service MySQL.

Les lignes 6 à 8 de la ressource TransportServer dans ts.yaml renvoient à l'écouteur TCP défini dans gc.yaml par le nom (mysql-tcp) et les lignes 9 à 14 définissent la règle de routage qui dirige le trafic TCP vers l'amont mysql-db.

Dans cet exemple, un ingénieur DevOps utilise le client MySQL pour vérifier que la configuration fonctionne, comme le confirme la sortie avec la liste des tables de la base de données rawdata_content_schema dans le déploiement MySQL.

$ echo « AFFICHER LES TABLES » | mysql –h <adresse_IP_externe> -P <port> -u <utilisateur> –p schéma_de_contenu_des_données_raw Entrez le mot de passe: <mot de passe>
Tables_dans_le_schéma_de_contenu_des_données_brute
auteurs
publications

Les ressources TransportServer pour le trafic UDP se configurent de façon similaire ; pour un exemple complet, consultez Basic TCP/UDP Load Balancing dans le dépôt NGINX Ingress Controller sur GitHub. Les utilisateurs avancés de NGINX peuvent enrichir la ressource TransportServer avec une configuration native NGINX en utilisant la clé ConfigMap stream-snippets, comme montré dans l'exemple Support for TCP/UDP Load Balancing du dépôt.

Pour découvrir les fonctionnalités que vous pouvez configurer dans les ressources TransportServer, consultez la documentation du contrôleur NGINX Ingress.

Cet article est un extrait de notre livre électronique complet, Gérer le trafic Kubernetes avec NGINX : Un guide pratique . Téléchargez-le gratuitement aujourd'hui .

Essayez dès aujourd'hui le contrôleur d'entrée NGINX basé sur NGINX Plus dans le cadre d'un essai gratuit de 30 jours ou contactez-nous pour discuter de vos cas d'utilisation .


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."