[Note de la rédaction– Cet article est un extrait de notre eBook complet, Gestion du trafic Kubernetes avec F5 NGINX : guide pratique. Téléchargez-le gratuitement dès aujourd’hui.]
Outre le trafic HTTP, NGINX Ingress Controller répartit la charge du trafic TCP et UDP. Vous pouvez donc l’utiliser pour gérer le trafic d’un large éventail d’applications et d’utilitaires reposant 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 appareils en périphérie et les applications non transactionnelles
L’équilibrage de charge TCP et UDP avec NGINX Ingress Controller constitue également une solution efficace pour répartir le trafic réseau entre les applications Kubernetes dans les cas suivants :
- Vous utilisez le chiffrement de bout en bout (EE2E) et confiez à l’application la gestion du chiffrement et du déchiffrement plutôt qu’à NGINX Ingress Controller
- Vous avez besoin d’un équilibrage de charge haute performance pour les applications basées sur TCP ou UDP
- Vous souhaitez limiter au maximum les modifications nécessaires lors de la migration d’un équilibreur de charge réseau (TCP/UDP) existant vers un environnement Kubernetes
NGINX Ingress Controller est fourni avec deux ressources NGINX Ingress prenant en charge l’équilibrage de charge TCP/UDP :
- GlobalConfiguration Les ressources sont généralement utilisées par les administrateurs de cluster pour spécifier les ports TCP/UDP (
listeners) que les équipes DevOps peuvent utiliser. Notez que chaque déploiement de NGINX Ingress Controller ne peut comporter qu’une seule ressource GlobalConfiguration. - TransportServer sont généralement utilisées par les équipes DevOps pour configurer l’équilibrage de charge TCP/UDP de leurs applications. NGINX Ingress Controller écoute uniquement sur les ports configurés par l’administrateur dans la ressource GlobalConfiguration. Cela évite les conflits entre les ports et offre une couche de sécurité supplémentaire en garantissant que les équipes DevOps n’exposent aux services externes publics que les ports préalablement jugés sûrs par l’administrateur.
Le schéma suivant illustre un exemple de cas d’utilisation des ressources GlobalConfiguration et TransportServer. Dans « gc.yaml », l’administrateur du cluster définit des points d’écoute TCP et UDP dans une ressource GlobalConfiguration. Dans « ts.yaml », un ingénieur DevOps référence le point d’écoute TCP dans une ressource TransportServer qui achemine le trafic vers un déploiement MySQL.

La ressource GlobalConfiguration dans gc.yaml définit deux écouteurs : un écouteur UDP sur le port 514 pour la connexion à un service syslog et un écouteur TCP sur le port 5353 pour la connexion à un service MySQL.
Chargement de l’exemple de code…
Les lignes 6 à 8 de la ressource TransportServer dans ts.yaml font référence, par son nom, au listener TCP défini dans gc.yaml (mysql-tcp). Les lignes 9 à 14 définissent la règle de routage qui envoie le trafic TCP vers le service en amont mysql-db.
Chargement de l’exemple de code…
Dans cet exemple, un ingénieur DevOps utilise le client MySQL pour vérifier que la configuration fonctionne, comme le confirme la sortie affichant la liste des tables de la base de données rawdata_content_schema au sein du déploiement MySQL.
$ echo “SHOW TABLES” | mysql –h <external_IP_address> -P <port> -u <user> –p rawdata_content_schema Enter Password: <password>
Tables_in_rawdata_content_schema
authors
postsLes ressources TransportServer pour le trafic UDP sont configurées de manière similaire. Pour un exemple complet, consultez « Équilibrage de charge TCP/UDP de base » dans le dépôt GitHub de NGINX Ingress Controller. Les utilisateurs avancés de NGINX peuvent étendre la ressource TransportServer avec une configuration NGINX native à l’aide de la clé ConfigMap « stream-snippets », comme illustré dans l’exemple « Prise en charge de l’équilibrage de charge TCP/UDP » du dépôt.
Pour plus d’informations sur les fonctionnalités que vous pouvez configurer dans les ressources TransportServer, consultez la documentation de NGINX Ingress Controller.
Cet article est un extrait de notre livre numérique complet, « Gestion du trafic Kubernetes avec NGINX : guide pratique ». Téléchargez-le gratuitement dès aujourd’hui.
Essayez vous-même le contrôleur Ingress NGINX basé sur NGINX Plus grâce à un essai gratuit de 30 jours dès aujourd’hui, ou contactez-nous pour discuter de vos cas d’utilisation.
À propos de l’auteur

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.