Qu’est-ce qu’un contrôleur Kubernetes Ingress ?

Vue en contre-plongée d’un bâtiment circulaire

Auteurs

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Qu’est-ce qu’un contrôleur Kubernetes Ingress ?

Un contrôleur Kubernetes Ingress est un composant logiciel spécialement conçu pour gérer le trafic entrant des applications exécutées dans un environnement Kubernetes. Il sert de passerelle entre les utilisateurs externes et les services conteneurisés.

Les entreprises modernes s’appuient fortement sur des applications distribuées et des workloads créées à partir de dizaines, voire de centaines de microservices. Sans une bonne orchestration du trafic, chaque service exigerait son propre point de terminaison public, ce qui poserait d’importants problèmes de gestion et de sécurité.

Par exemple, une plateforme de soins de santé peut nécessiter des points d'accès distincts pour les portails patients, les tableaux de bord des prestataires, les systèmes de facturation et les rapports de conformité, une approche qui s'avère coûteuse et complexe sur le plan opérationnel.

Le contrôleur Kubernetes Ingress résout ce problème en servant d’équilibreur de charge et de routeur de trafic intelligent au point d’entrée de l’application. Il centralise le trafic pour permettre aux utilisateurs externes d’accéder aux services internes.

L’écosystème Kubernetes propose divers contrôleurs Ingress, y compris des outils open source (par exemple, NGINX, Traefik) disponibles sur des plateformes comme GitHub, ainsi que des solutions propriétaires conçues pour répondre aux besoins spécifiques de chaque entreprise.

Les dernières actualités technologiques, étayées par des avis d’expert

Restez au fait des tendances les plus étonnantes du secteur dans le domaine de l’IA, de l’automatisation, des données et bien d’autres avec la newsletter Think. Consultez la déclaration de confidentialité d’IBM.
Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Qu’est-ce que Kubernetes ?

Initialement développé par Google, qui en a fait don à la Cloud Native Computing Foundation (CNCF) en 2015, Kubernetes alimente désormais l’infrastructure IT essentielle de la plupart des entreprises citées au classement Fortune 500. La gestion des contrôleurs Ingress est donc indispensable au bon fonctionnement des entreprises. Selon une étude réalisée en 2022, 96 % des entreprises utilisent Kubernetes ou étudient cette option pour leur environnement de production.1

Avant Kubernetes, les applications étaient généralement exécutées sur des serveurs dédiés ou des machines virtuelles (VM), ce qui rendait la mise à l’échelle coûteuse et fastidieuse. Kubernetes a introduit la notion de conteneur, une unité légère et portable qui empaquette les applications et toutes leurs dépendances.

Kubernetes a révolutionné les workflows DevOps et le déploiement applicatif en permettant l’orchestration de conteneurs à l’échelle. Cette plateforme open source automatise le déploiement, la mise à l’échelle et la gestion des applications conteneurisées sur les infrastructures distribuées, ce qui améliore la collaboration des équipes de développement et d’exploitation.

Kubernetes organise les applications en pods. Un pod est l’unité déployable la plus petite, composée d’un ou de plusieurs conteneurs (généralement des conteneurs Docker). Ces pods s’exécutent sur des nœuds worker au sein des clusters, tandis qu’un plan de contrôle coordonne toutes les opérations de ces derniers. Les services fournissent des identités réseau stables pour les groupes de pods, ce qui permet de fiabiliser les schémas de communication.

Les contrôleurs Ingress sont généralement déployés en tant que pods spécialisés, qui surveillent l’état du cluster par le biais de l’API Kubernetes. Ces contrôleurs suivent les modifications apportées aux ressources Ingress (objets de configuration qui définissent les règles de routage du trafic) et mettent automatiquement à jour leurs tables de routage pour prendre en compte les nouveaux déploiements applicatifs ou les changements de configuration.

IBM Cloud

Red Hat OpenShift AI on IBM Cloud : déployer des workloads d’IA

Utilisez les capacités de l’IA avec Red Hat OpenShift on IBM Cloud. Cette vidéo explique comment créer, déployer et gérer efficacement des workloads d’IA grâce à une plateforme d’opérations de machine learning évolutive.

Qu’est-ce que Kubernetes Ingress ?

Pour comprendre le fonctionnement des contrôleurs Ingress, il est essentiel de comprendre Kubernetes Ingress, la ressource API (ou l’objet Ingress) qui définit les règles de routage dirigeant le trafic externe vers les services d’un cluster Kubernetes.

Kubernetes Ingress se distingue du terme général « ingress », qui désigne le flux de trafic réseau entrant dans un environnement applicatif conteneurisé cloud natif. Dans Kubernetes, Ingress fait spécifiquement référence à l'ensemble des règles et configurations qui gèrent la manière dont le trafic entrant est acheminé vers différents services. En revanche, dans un sens plus large, « ingress » désigne simplement tout trafic entrant dans un système (par opposition à « egress », qui désigne le trafic sortant du système).

En savoir plus sur l'ingress et l'egress dans Kubernetes.

Kubernetes Ingress propose une approche déclarative pour gérer l’accès externe aux services d’un cluster Kubernetes. Au lieu d’exposer chaque service (par exemple, NodePort ou LoadBalancer) directement à Internet, Ingress crée une couche d’accès contrôlé qui achemine intelligemment les requêtes selon plusieurs critères. Cette fonctionnalité permet de gérer efficacement le trafic externe vers les services, généralement exposés à l’aide de ClusterIP au sein du cluster Kubernetes.

Kubernetes Ingress fonctionne grâce à deux composants complémentaires.

Ressources Ingress

Les ressources Ingress (également appelées « ressources Kubernetes » ou « objets API Kubernetes ») définissent les règles de routage. Définies en YAML ou JSON, elles spécifient les règles d’entrée, les certificats SSL, les exigences d’ authentification et les politiques de trafic.

Par exemple, le champ ingressClassName permet de déterminer quel contrôleur Ingress doit gérer la ressource, afin de diriger le trafic vers un contrôleur donné lorsque le cluster en comporte plusieurs.

Contrôleurs Ingress

Les contrôleurs Ingress sont des composants logiciels qui lisent et appliquent les règles de configuration. Ils agissent comme des proxys inversés, dotés de capacités de gestion du trafic avancées.

Comment fonctionnent les contrôleurs Kubernetes Ingress ?

Les équilibreurs de charge de couche 4 traditionnels, comme ceux pour les routes TCP, UDP et HTTP/HTTPS, distribuent le trafic en fonction des adresses IP et des ports uniquement. Le contrôleur Kubernetes Ingress, quant à lui, opère au niveau de la couche 7 (la couche applicative), ce qui permet un routage plus avancé.

En s’appuyant sur l’API Kubernetes Ingress et sur des fonctionnalités comme HTTPRoute, le contrôleur Ingress prend des décisions de routage en fonction d’attributs HTTP détaillés. Exemples :

  • Chemins d’URL et noms d’hôtes
  • En-têtes et méthodes HTTP
  • Contenu des requêtes et cookies
  • Tokens d’authentification et contexte utilisateur

Ces décisions sont axées sur les règles de configuration qui dictent les politiques de routage et d’autres exigences. Les contrôleurs Ingress surveillent en permanence l’évolution de ces configurations et mettant automatiquement à jour le comportement de routage, afin de garantir une distribution du trafic et une gestion de la sécurité optimales.

Les clusters Kubernetes peuvent exécuter plusieurs contrôleurs Ingress simultanément, chacun gérant différents types de trafic ou différentes applications. Le fonctionnement de chaque contrôleur est axé sur les événements. En effet, face aux modifications apportées aux ressources Ingress, il lit les spécifications, annotations et métadonnées, puis les convertit en instructions de routage exécutables.

Principales fonctions des contrôleurs Kubernetes Ingress

Traitement des requêtes

Les contrôleurs Kubernetes Ingress examinent les requêtes entrantes et prennent des décisions de routage en fonction de règles prédéfinies, telles que les noms d’hôtes et les noms DNS. Ils gèrent le trafic HTTP et HTTPS, réalisent la terminaison SSL et prennent des décisions intelligentes en matière d’équilibrage de charge sur plusieurs instances de service.

Gestion de la configuration

Les contrôleurs Kubernetes Ingress surveillent en permanence l’API Kubernetes pour détecter les modifications apportées aux ressources Ingress dans les espaces de noms. Que ces modifications soient appliquées par le biais de kubectl, de pipelines CI/CD ou d’autres outils (par exemple, Helm, Terraform), le contrôleur met automatiquement à jour les règles de routage, sans intervention manuelle ni redémarrage du service.

Équilibrage de charge

Intégrée à la plupart des contrôleurs Kubernetes Ingress, la fonctionnalité d’équilibrage de charge répartit les requêtes entrantes sur plusieurs instances du même service, afin d’éviter que ces dernières ne soient submergées et de garantir une performance optimale.

Gestion TLS

Les contrôleurs Kubernetes Ingress modernes proposent des fonctionnalités de gestion SSL/TLS avancées telles que la terminaison TLS, le provisionnement automatique des certificats, leur renouvellement et la sécurisation des communications.

Diagnostic d’intégrité

Les contrôleurs Kubernetes Ingress avancés surveillent en permanence l’état des services back-end et acheminent automatiquement le trafic hors des instances défaillantes, afin d’assurer une haute disponibilité et une meilleure expérience utilisateur.

Cas d'utilisation des contrôleurs Kubernetes Ingress

Consolidation des applications

Les grandes entreprises utilisent les contrôleurs Ingress pour consolider des centaines d’applications internes derrière des points d’accès unifiés. Cette approche réduit les coûts d’infrastructure tout en renforçant la sécurité grâce à une application centralisée des politiques. Une entreprise manufacturière internationale peut acheminer les requêtes vers ses systèmes ERP régionaux, applications de chaîne d’approvisionnement et portails clients en déployant un seul contrôleur Ingress.

Environnements de développement et de mise en scène

Les équipes de développement utilisent les contrôleurs Ingress pour créer des environnements distincts, afin de tester de nouvelles fonctionnalités. Elles configurent automatiquement de nouveaux environnements de test et y dirigent le trafic selon la fonctionnalité en cours de développement.

Intégration des partenaires et des fournisseurs

Les entreprises utilisent les contrôleurs Ingress pour partager en toute sécurité des API internes avec leurs partenaires et fournisseurs. Chaque entreprise peut disposer de droits d’accès et d’utilisation différents, le tout géré par un seul et même système, sans le besoin de mettre en place une infrastructure distincte.

Répartition mondiale du trafic

Les multinationales mettent en œuvre les contrôleurs Ingress dans le cadre de leur stratégie de gestion du trafic international. Cela leur permet d’orienter les utilisateurs vers le centre de données optimal géographiquement, tout en assurant des politiques de sécurité et de surveillance cohérentes.

Exigences en matière de conformité et d’audit

Les secteurs réglementés utilisent les contrôleurs Ingress pour mettre en œuvre leurs politiques de journalisation, de contrôles d’accès et de gouvernance des données. Tous les accès externes peuvent être surveillés et contrôlés de manière centralisée grâce à la couche Ingress.

Avantages des contrôleurs Kubernetes Ingress

  • Consolidation de l'infrastructure : les architectures traditionnelles requièrent souvent des équilibreurs de charge dédiés à chaque application, ce qui engendre des coûts matériels et opérationnels importants. Les contrôleurs Ingress permettent aux entreprises de consolider plusieurs applications derrière une infrastructure partagée, afin de réduire les coûts d’équilibrage de charge et d’améliorer l’utilisation des ressources.
  • Cycle de développement accéléré : les équipes de développement peuvent déployer et tester de nouvelles fonctionnalités sans faire appel aux administrateurs réseau, ni avoir à configurer des équilibreurs de charge externes. Les contrôleurs Ingress prennent en charge les workflows GitOps. Ici, les changements de routage sont gérés par le contrôle de version et les pipelines de déploiement automatisés.
  • Observabilité améliorée : pour renforcer l’observabilité, les contrôleurs Ingress modernes fournissent une analyse détaillée des schémas d’utilisation des applications, du comportement des utilisateurs et des problèmes de performance. Cette visibilité permet de prendre des décisions axées sur les données afin d’améliorer la planification des capacités, l’adoption des fonctionnalités et l’expérience utilisateur.
  • Sécurité automatisée : au lieu de configurer des politiques de sécurité sur plusieurs systèmes, les entreprises peuvent assurer authentification, autorisation, limitation de débit, règles WAF (pare-feu d’application Web) et protection DDoS par le biais des politiques du contrôleur Ingress. Les mises à jour de sécurité sont déployées instantanément sur toutes les applications.
  • Portabilité cloud : contrairement aux services d’équilibrage de charge cloud, les contrôleurs Ingress assurent la cohérence des fonctionnalités, quels que soient les fournisseurs de cloud ou l’infrastructure sur site. La migration des applications d’un environnement à l’autre est faite sans modifier l’architecture.
  • Mise à l’échelle dynamique : les contrôleurs Ingress ajustent automatiquement les schémas de routage en fonction des conditions de trafic en temps réel, de la capacité du back-end et des politiques configurées. Cette fonctionnalité permet une gestion avancée du trafic, qui s’adapte aux besoins changeants de l’entreprise.

Défis des contrôleurs Ingress

  • Considérations relatives à la performance : sachant que tout le trafic externe passe par les contrôleurs Ingress, ces derniers sont susceptibles d’engendrer des goulots d’étranglement dans les environnements de production. Les entreprises doivent soigneusement planifier la capacité, mettre en œuvre une surveillance appropriée et élaborer des stratégies de redondance pour garantir une haute disponibilité.
  • Courbe d’apprentissage et surcharge opérationnelle : les équipes doivent développer des compétences en matière de mise en réseau Kubernetes, de gestion des configurations YAML et de dépannage des systèmes distribués, ce qui implique généralement une formation intensive et des ajustements opérationnels.

Contrôleurs Kubernetes Ingress : options

Le choix du contrôleur Kubernetes Ingress dépendra des besoins de l’entreprise, de l’infrastructure existante et des capacités de l’équipe. Chaque type de contrôleur a ses propres avantages et cas d’utilisation :

  • Contrôleur d'entrée NGINX : l'option la plus largement adoptée, le contrôleur NGINX Ingress (ingress-nginx), offre des performances dédiées aux entreprises et des capacités de personnalisation étendues. L'écosystème mature de NGINX fournit une documentation complète, des options d'assistance commerciale et une évolutivité éprouvée.
  • Contrôleur Traefik Ingress : conçu pour les environnements cloud natifs modernes, Traefik met l’accent sur la découverte automatique des services et la facilité d’utilisation. Traefik excelle dans les environnements dynamiques, où les services Kubernetes changent fréquemment, permettant l’intégration des maillages de services et des registres de conteneurs.
  • Contrôleur HAProxy Ingress : le contrôleur HAProxy Ingress s’appuie sur l’équilibreur de charge HAProxy standard pour offrir une performance optimale dans les scénarios à fort trafic. Ce contrôleur permet des algorithmes avancés d’équilibrage de charge, des statistiques détaillées et un contrôle précis du trafic.
  • Passerelle Istio : au sein de la plateforme complète de maillage de services Istio, la passerelle Istio propose des fonctionnalités avancées de gestion du trafic, de sécurité et d’observabilité. Elle propose également des capacités plus complexes telles que la répartition du trafic, l’injection d’erreur et le traçage distribué.
  • Solutions proposées par les fournisseurs de cloud : les principaux fournisseurs de cloud proposent des contrôleurs Ingress optimisés, qui s’intègrent parfaitement à leurs plateformes. AWS Load Balancer Controller, Google Cloud Load Balancer, Azure Application Gateway Ingress Controller et IBM Cloud Application Load Balancer permettent une intégration sans heurts avec les services cloud natifs, une mise à l’échelle automatisée et une facturation simplifiée.
  • Contrôleurs basés sur Envoy : les contrôleurs Ingress basés sur le proxy Envoy, dont Ambassador et Emissary-Ingress, offrent une gestion du trafic haute performance et des fonctionnalités d’observabilité avancées. Ces solutions intègrent souvent l’authentification, la limitation du débit et la fonctionnalité de passerelle API, ce qui les rend adaptées aux besoins des entreprises dotées d’une stratégie complète de gestion des API.
Solutions connexes
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.

Découvrir Red Hat OpenShift
Solutions de conteneurs

Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.

Découvrir les conteneurs
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Lancez-vous avec une plateforme Red Hat OpenShift entièrement gérée ou explorez la flexibilité de l’écosystème IBM Cloud Kubernetes. Accélérez votre processus de développement et de déploiement avec des solutions évolutives et sécurisées adaptées à vos besoins.

Découvrir Red Hat OpenShift Découvrir Kubernetes