BLOG | BUREAU DU CTO

F5 Vendredi : Entrée contre entrée

Miniature de Lori MacVittie
Lori MacVittie
Publié le 28 décembre 2018

Alors que les mondes de DevOps et de NetOps entrent en collision et que les environnements de conteneurs remplacent les définitions traditionnellement utilisées dans le réseau, il semble prudent d'explorer l'utilisation du terme souvent déroutant « ingress » en termes de chemin de données et d'environnements de conteneurs.

Les termes « entrée » et « sortie » ont été classiquement utilisés pour décrire la direction du trafic sur le réseau du point de vue du centre de données. L'entrée est entrante, la sortie est sortante.

À mesure que les environnements de conteneurs ont évolué, le terme « ingress » a été appliqué pour avoir une définition très spécifique et axée sur l'application.

Entrée. Un objet API qui gère l'accès externe aux services d'un cluster, généralement HTTP. Ingress peut fournir un équilibrage de charge, une terminaison SSL et un hébergement virtuel basé sur le nom.

Il est important de faire une pause et de noter qu'une ressource d'entrée telle que définie dans un environnement Kubernetes décrit les capacités supposées s'exécuter dans le périmètre du conteneur lui-même. 

Chaque entrée est un proxy inverse qui accepte les demandes externes et, en fonction des règles spécifiées par la ressource d'entrée Kubernetes, dirige ces demandes vers le service Kubernetes approprié. Le service équilibre à son tour la charge des requêtes sur un ensemble de conteneurs associés, généralement au moyen d'algorithmes d'équilibrage de charge de couche 4 (TCP) natifs. C’est l’une des façons dont une API unifiée est présentée au monde extérieur. L'entrée analyse les appels d'API (le chemin URI) et les distribue aux microservices hébergés par le conteneur approprié à l'intérieur du cluster de conteneurs.

F5 fournit les mêmes fonctionnalités qu'une entrée Kubernetes classique, mais ajoute des fonctionnalités supplémentaires sous la forme de routage SNI et d'équilibrage de charge de couche 4 (TCP). La possibilité d'effectuer un routage SNI (indicateur de nom de serveur) est un avantage pour ceux qui souhaitent un cryptage TLS de bout en bout des échanges de messages, car elle permet à F5 d'acheminer correctement les requêtes en fonction des informations contenues dans les en-têtes sans décrypter la charge utile/le message réel. Bien que cela limite la gamme de fonctionnalités qui peuvent être appliquées à la demande (par exemple, elle ne peut pas être analysée à la recherche de contenu malveillant), cela fournit le support nécessaire aux architectures dans lesquelles le contenu doit rester chiffré pour des raisons réglementaires ou opérationnelles. L'équilibrage de charge de couche 4 (TCP) est souvent utilisé en dehors d'un environnement de conteneur pour faire évoluer les services d'entrée de style Kubernetes. 

F5 est généralement déployé en dehors de l’environnement du conteneur. Il est souvent utilisé comme solution d'équilibrage de charge pour exposer des clusters en externe, c'est-à-dire fournir un accès public aux services constitués d'un cluster de conteneurs. Une enquête CNCF a révélé que 67 % des répondants choisissent une option d'équilibrage de charge pour exposer les services de cluster en externe, avec 33 % supplémentaires exploitant les capacités d'entrée (L7).

Afin que nous puissions fournir les mêmes fonctionnalités qu'une entrée Kubernetes, un « connecteur » natif du conteneur est utilisé pour faciliter les mises à jour des politiques qui définissent les politiques de trafic. Ce connecteur réside à l'intérieur et s'intègre à l'orchestrateur de conteneurs (généralement Kubernetes, mais Red Hat OpenShift est également populaire). La communication avec l'entrée F5 s'effectue via l'API. Les mises à jour incluent des modifications des définitions de ressources d'entrée (stratégies de routage HTTP) ainsi que des modifications de configuration telles que le lancement ou la suppression d'une instance de conteneur qui affecte une définition de service actuelle.

L’avantage d’utiliser F5 par rapport aux services d’entrée simples est la possibilité d’appliquer des fonctionnalités avancées au trafic entrant et sortant. La sécurité, l'enrichissement de l'en-tête et les optimisations des performances spécifiques au client peuvent être appliqués lors de l'utilisation de F5 sans modifier l'environnement ou l'architecture du conteneur ou l'application elle-même.

Ressources supplémentaires :