Que sont les entrées et les sorties dans Kubernetes ?

Vue aérienne de deux personnes assises à une table incurvée

Auteurs

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Que sont les entrées et les sorties dans Kubernetes ?

Dans Kubernetes, les termes « entrée » et « sortie » désignent la manière dont le trafic réseau entre et sort d’un environnement applicatif conteneurisé cloud natif.

  • Les entrées régissent la manière dont les utilisateurs ou les systèmes externes accèdent aux services au sein d’un cluster Kubernetes.
  • Les sorties définissent la manière dont les services internes accèdent aux systèmes externes au cluster, tels que les API, les bases de données ou les outils tiers.

Ces flux de trafic sont essentiels au bon fonctionnement des applications modernes dans une infrastructure cloud. Une gestion efficace prend en charge un large éventail de cas d’utilisation, tels que le routage du trafic client vers des applications Web ou l’accès sécurisé à des API tierces.

Dans le monde actuel axé sur le cloud computing, Kubernetes alimente des workloads de plus en plus critiques. Par conséquent, la capacité granulaire à contrôler le trafic est devenue essentielle pour préserver les performances, appliquer les mesures de sécurité et respecter les exigences de conformité.

Fonctionnement de Kubernetes

Également appelé k8s ou kube, Kubernetes est une plateforme d’orchestration de conteneurs qui automatise le déploiement, la mise à l’échelle et la maintenance des applications sur un pool de ressources informatiques. Au lieu de gérer directement les serveurs, les équipes DevOps et informatiques utilisent Kubernetes pour exécuter des applications dans des conteneurs, des unités logicielles légères et autonomes qui disposent de tout le nécessaire pour exécuter une application.

Selon un rapport du CNCF, Kubernetes est le deuxième plus grand projet open source au monde (après Linux) et le principal outil d’orchestration de conteneurs pour 71 % des entreprises du Fortune 100.

Docker est l’outil le plus utilisé pour créer des images de conteneurs. Dans Kubernetes, les conteneurs sont regroupés en unités appelées pods, qui sont les plus petites unités déployables et peuvent contenir un ou plusieurs conteneurs. Kubernetes organise ces pods sur un cluster de machines appelées nœuds.

Les pods et leurs ressources associées sont organisés en espaces de noms, qui fournissent une séparation logique pour la gestion de différents projets, équipes ou environnements au sein d’un même cluster. Kubernetes gère les fonctionnalités clés du cluster, telles que l’équilibrage de charge, le basculement, la mise à l’échelle et l’auto-réparation, en éliminant une grande partie de la complexité de l’infrastructure de bas niveau.

Les services au sein d’un cluster Kubernetes doivent souvent communiquer entre eux, et parfois avec des systèmes externes. Kubernetes gère et contrôle le trafic de manière à isoler les composants internes afin d’améliorer les performances et la sécurité. C’est pourquoi le trafic entrant et sortant doit être explicitement défini, géré et configuré.

Entrée et sortie Kubernetes

En informatique, les termes « entrée » et « sortie » désignent respectivement le trafic entrant et sortant d’un réseau ou d’un système. Les fonctions d‘entrée et de sortie de Kubernetes fournissent aux équipes de plateforme un cadre contrôlé pour régir la manière dont le trafic entre et sort du cluster Kubernetes. Cet aspect est essentiel pour exploiter des environnements de production à la fois sécurisés et évolutifs.

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 l’entrée dans Kubernetes ?

L’entrée désigne le trafic entrant provenant d’utilisateurs ou de systèmes externes vers un cluster Kubernetes, généralement via HTTP ou HTTPS (opérant tous deux sur le protocole TCP). Plutôt que d’exposer directement chaque service à Internet, les entreprises définissent des règles d’entrée via une ressource Ingress. Cette dernière est généralement écrite en YAML, qui indique à Kubernetes comment acheminer le trafic en fonction de critères tels que les chemins d’URL ou les noms de domaine.

Les règles d’entrée sont appliquées par un contrôleur d’entrée, un logiciel (souvent basé sur NGINX ou un autre proxy inverse) qui sert de point d’entrée réel. Le contrôleur reçoit les demandes entrantes, décrypte le trafic si nécessaire et le transmet au service concerné au sein du cluster.

Les règles d’entrée peuvent être configurées pour :

  • acheminer le trafic vers api.company.com vers un service API back-end qui traite les demandes de données ;
  • acheminer le trafic vers app.company.com vers une application front-end avec laquelle les utilisateurs interagissent ;
  • traiter toutes les demandes HTTPS via un seul certificat TLS géré au niveau de la couche d’entrée Kubernetes, ce qui simplifie la sécurité et la gestion des certificats.

Avantages de l’entrée dans Kubernetes

  • Rentabilité : l’entrée permet à plusieurs services de partager un seul équilibreur de charge externe, ce qui réduit les coûts d’infrastructure informatique, en particulier dans les environnements de microservices comportant de nombreuses applications déployées indépendamment.
  • Simplification des opérations : le routage, la configuration des domaines et la gestion des certificats centralisés contribuent à réduire la complexité administrative et à garantir la cohérence entre les services.
  • Sécurité renforcée : la terminaison SSL/TLS pour le trafic d’entrée se fait à un point de contrôle unique, et des politiques telles que la limitation du débit, l’authentification ou les pare-feux d’applications Web peuvent être appliquées de manière uniforme. Cette configuration permet d’éviter les menaces de sécurité courantes telles que les accès non autorisés en appliquant des contrôles de sécurité avant que le trafic n’atteigne les services back-end.
  • Évolutivité accrue : l’entrée prend en charge le routage basé sur le chemin d’accès et le nom d’hôte, ce qui facilite l’extension des services au-delà d’un point d’entrée unique et flexible. Ainsi, le routage basé sur les chemins d’accès API permet aux équipes de faire évoluer les services de manière indépendante sans ajouter de nouvelles destinations externes.

L’entrée et les types de service Kubernetes

Kubernetes fournit plusieurs méthodes intégrées pour exposer des services en dehors du cluster. La ressource Ingress fonctionne avec certains types de services, mais offre une approche plus flexible et centralisée, en particulier pour le trafic Web.

Voici quelques-uns des types de services les plus courants :

  • ClusterIP expose les services uniquement au sein du cluster. Il est utile pour la communication interne entre services, mais n’est pas accessible depuis l’extérieur.
  • NodePort ouvre un port spécifique sur chaque nœud du cluster afin d’exposer un service à l’extérieur. Bien que simple, ce service est peu flexible et expose directement l’infrastructure au niveau des nœuds. Cela pose des défis opérationnels et de sécurité.
  • LoadBalancer fournit un équilibreur de charge géré par le fournisseur de cloud pour chaque service. Si cela est adapté pour l’accès externe, ce n’est pas évolutif ; chaque nouveau service nécessitant son propre équilibreur de charge, cela augmente la complexité et les coûts.
  • Gateway API agit comme une passerelle API et fournit un routage du trafic et une gestion des politiques avancés, flexibles et extensibles, au-delà des ressources Ingress traditionnelles.

En comparaison, la ressource Ingress permet d’accéder à plusieurs services via une seule adresse IP externe à l’aide de règles de routage intelligentes, basées sur des noms de domaine ou des chemins d’accès. Elle centralise la gestion HTTP(S) et le contrôle du trafic, ce qui en fait un choix idéal pour les workloads de production.

Qu’est-ce que la sortie dans Kubernetes ?

La sortie fait référence au trafic sortant, c’est-à-dire lorsque les services au sein du cluster Kubernetes doivent communiquer avec des destinations ou des systèmes externes (tels que des API, des services cloud ou des bases de données). Bien que Kubernetes autorise le trafic sortant sans restriction par défaut, cette politique ouverte est rarement propice aux environnements de production.

Pour des raisons de sécurité et de conformité, les organisations veulent généralement contrôler et surveiller les services qui peuvent se connecter à des points de terminaison externes. Ainsi, une entreprise de vente au détail peut souhaiter que son service de paiement n’accède qu’aux passerelles de paiement approuvées et bloque toutes les autres destinations.

Gérer les sorties dans Kubernetes

Kubernetes propose plusieurs méthodes pour gérer les sorties efficacement et en toute sécurité. En mettant en œuvre ces contrôles, les entreprises peuvent s’assurer que seul le trafic autorisé circule vers les réseaux externes, renforçant ainsi la sécurité et la conformité.

Politiques réseau

Les politiques réseau Kubernetes peuvent restreindre les pods autorisés à établir des connexions sortantes et spécifier les adresses ou les domaines auxquels ils peuvent accéder, souvent à l’aide de la notation CIDR pour les plages IP. Ces politiques prennent en charge les modèles Zero Trust en n’autorisant que les communications explicitement autorisées. Les règles de sortie de ces politiques réseau définissent les restrictions de trafic sortant, contrôlant les destinations externes auxquelles les pods peuvent accéder.

Passerelles de sortie

Souvent déployées dans le cadre d’un maillage de services, les passerelles de sortie peuvent acheminer tout le trafic sortant via un point de contrôle surveillé. Cela permet un contrôle du trafic, un chiffrement et une observabilité accrus.

Nœuds de sortie dédiés

Des nœuds de sortie dédiés ou des passerelles NAT peuvent également être employés pour centraliser et enregistrer les connexions sortantes, offrant ainsi une traçabilité et une isolation des performances améliorées.

Avantages de la sortie dans Kubernetes

  • Protection robuste des données : les politiques réseau de sortie permettent de restreindre le trafic sortant, réduisant ainsi le risque de fuites de données ou de compromission des services connectés à des points de terminaison externes malveillants.
  • Conformité : le contrôle du trafic sortant Kubernetes garantit que les workloads sensibles respectent les exigences réglementaires en limitant les connexions aux points de terminaison approuvés et en offrant une visibilité sur les audits.
  • Meilleur contrôle des coûts : la gestion du trafic sortant permet d’éviter les frais cloud imprévus liés à des appels sortants non contrôlés ou à des transferts de données volumineux.
  • Observabilité améliorée : la gestion du trafic sortant offre une visibilité sur les systèmes externes dont dépendent les applications, ce qui facilite la gestion des fournisseurs, le débogage et l’identification des dépendances de services externes.
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.

  1. Découvrir Red Hat OpenShift
  2. Découvrir Kubernetes