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.
Newsletter sectorielle
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.
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.
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.
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.
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.
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.
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 :
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 :
Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.
Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.
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.