Comment utiliser l'API Kubernetes Ingress

Kubernetes voit son adoption dans le secteur des technologies et est en passe de devenir la plate-forme d'orchestration de facto pour la fourniture de services cloud modernes. Kubernetes fournit non seulement des primitives pour le déploiement de microservices dans le cloud, mais va encore plus loin en aidant les développeurs à définir les interactions et à gérer le cycle de vie de leurs API. 

L'API Ingress de Kubernetes vous permet d'exposer votre microservice au monde extérieur et de définir des politiques de routage pour votre trafic nord-sud, c'est-à-dire le trafic entrant dans votre centre de données virtuel. 

Les avantages de la gestion des cycles de vie des API à l'aide de l'intégration continue et des pipelines de livraison continue (CI / CD) avec Ingress sont nombreux, mais avant de couvrir cela, commençons par quelques connaissances de base.

La conception et le but de la ressource Ingress

La description la plus simple d'un cluster Kubernetes serait un ensemble de nœuds gérés qui exécutent des applications dans des conteneurs. Dans la plupart des cas, les nœuds d'un cluster Kubernetes ne sont pas directement exposés à l'Internet public. Cela a du sens, car exposer tous les services sur un nœud créerait un risque incroyable. Afin de fournir un accès public aux services sélectionnés, Kubernetes fournit la ressource Ingress.

La ressource Ingress expose les routes HTTP et HTTPS depuis l'extérieur du cluster vers les services sélectionnés à l'intérieur. La ressource Ingress fournit également des règles pour contrôler le trafic. Cela fait de la ressource Ingress une excellente solution pour gérer les différentes API fournies par un grand nombre de services individuels. Il le fait en fournissant un point d'entrée unique pour tous les clients, puis en traitant les demandes aux services principaux. Ceci est communément appelé configuration en éventail.

Kong

La ressource Ingress peut également être configurée pour un hébergement virtuel basé sur le nom, où elle acheminera les demandes en fonction de l'en-tête d'hôte:

Kong

Pour que la ressource Ingress fonctionne, un contrôleur Ingress doit être installé sur le cluster Kubernetes. Le contrôleur crée le pont entre le cluster Kubernetes et les différentes interfaces publiques existantes. Par exemple, la plupart des fournisseurs de cloud hébergeant Kubernetes fournissent un contrôleur Ingress unique pour s'interfacer avec leurs méthodes d'accès public prescrites. Les divers contrôleurs fonctionnent tous différemment les uns des autres et peuvent fournir une quantité variable de fonctionnalités supplémentaires.

Les avantages de l'utilisation d'Ingress pour gérer le cycle de vie des API à l'aide de pipelines CI / CD

La ressource Ingress est définie via un fichier de configuration déclaratif, qui est généralement décrit dans YAML. Ceci est cohérent avec toutes les ressources Kubernetes et permet une intégration simple dans des modèles de déploiement modernes tels que la pratique combinée de CI / CD. Cela équivaut à la possibilité de déployer les modifications Ingress rapidement, fréquemment et en toute sécurité. De cette façon, la ressource Ingress peut être intégrée dans le même type de modèles de cycle de vie de développement logiciel que les applications elles-mêmes.

Comment les développeurs peuvent accomplir Ingress en utilisant Kong pour Kubernetes

Kong pour Kubernetes est un contrôleur d'Ingress open source et indépendant du cloud populaire . Le contrôleur d'entrée Kong pour Kubernetes est conçu sous forme de définitions de ressources personnalisées (CRD) dans Kubernetes. Cela crée une expérience native Kubernetes pour ceux qui sont déjà habitués à définir des ressources au sein de cette plate-forme.

Comme vos applications et services, Kong for Kubernetes peut être installé via Manifest, Helm ou Kustomize.

Le contrôleur d'entrée Kong pour Kubernetes étend les capacités de la ressource Ingress en fournissant un ensemble complet de plug-ins couvrant un large éventail de fonctionnalités, notamment l'authentification, l'analyse, la surveillance et les transformations de demande et de réponse, pour n'en nommer que quelques-unes. En fournissant ces exigences communes (et parfois pas si courantes) sur le contrôleur Ingress, Kong for Kubernetes permet aux développeurs de se concentrer davantage sur les exigences de base des services. La valeur de cela devient particulièrement évidente lorsqu'une organisation passe d'une poignée d'applications monolithiques à des centaines, voire des milliers de microservices.

Pour une liste des plug-ins courants, consultez //docs.konghq.com/hub/.

Les plug-ins Kong sont définis comme une ressource Kubernetes, où une section de configuration fournit les paramètres de chaque plug-in.

Voici un exemple de plug-in limitant le débit qui limitera le trafic à cinq requêtes par minute:

Kong

L'ajout d'un plug-in Kong à une ressource Kubernetes se fait via une simple annotation dans la section métadonnées de la ressource. Cela permet aux plug-ins d'être appliqués à différents niveaux. Par exemple, vous pouvez appliquer un plug-in à l'ensemble de la ressource Ingress ou en appliquer un d'une manière plus fine à une ressource de service individuelle.

Voici un exemple du plug-in ci-dessus appliqué à une ressource Ingress:

Kong

Kong for Kubernetes peut également être intégré à la suite complète de produits Kong Enterprise, notamment Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain et Kong Immunity. Cela permet des plug-ins Kong encore plus avancés ainsi qu'une solution complète de cycle de vie des API. Cette suite de produits couvre la création et la publication de spécifications d'API ainsi que la gestion de vos ressources Kong et même l'analyse du trafic.

Vous pouvez adopter une approche «spec-first» pour développer vos API à l'aide de Kong Studio, où vous trouverez des outils pour rédiger de la documentation dans la spécification OpenAPI standard ainsi que des outils de test pour un retour immédiat. Kong Studio fournit également des outils pour travailler avec GraphQL. Kong Studio se synchronise directement dans Git, ce qui permet à vos fichiers de spécifications d'être intégrés dans un flux de travail CI / CD qui peut automatiser les mises à jour de Kong Dev Portal.

Kong Dev Portal héberge la documentation de votre API (qui peut être privée ou publique). Il est extrêmement personnalisable, vous permettant de le conformer au style et à l'image de marque de votre organisation. Avoir une API bien documentée est important pour la productivité, et avoir un flux bien géré entre Kong Studio et le portail de développement peut aider à garantir que la documentation est aussi à jour que possible.

Kong Manager fournit une interface graphique pour observer et gérer la suite de produits Kong dans son ensemble. De là, vous pouvez observer les relations entre vos itinéraires, services et plug-ins. Vous pouvez avoir un œil en temps réel sur le trafic et suivre vos consommateurs.

Kong Brain analyse le trafic passant par l'Ingress et crée une carte de service visuelle des dépendances inter-services. Il a également la capacité de générer automatiquement des documents de spécification OpenAPI en fonction des cartes qu'il génère. C'est une fonctionnalité précieuse, car même avec les meilleures intentions, les services déployés peuvent ne pas être correctement documentés. 

Kong Immunity analyse tout le trafic passant par l'Ingress et apprend des modèles pour identifier les anomalies. Ce sont souvent des demandes subtiles qui ne se démarquent pas mais qui pourraient être intéressantes, comme un paramètre inconnu qui essaie de passer. C'est également une fonctionnalité très précieuse car repérer ces aiguilles dans la botte de foin de centaines de milliers d'entrées de journal n'est pas facile.

Kong

Tirer le meilleur parti d'Ingress

La ressource Kubernetes Ingress fournit un point d'entrée unique depuis l'extérieur de Kubernetes vers les services back-end internes. En exploitant les fichiers de définition déclaratifs, la ressource Ingress peut être traitée comme toutes les autres formes de code et être intégrée dans les cycles de vie de développement logiciel courants.

Afin de relier la communication en dehors de Kubernetes, un contrôleur Ingress est requis. Kong for Kubernetes est un contrôleur Ingress qui utilise des définitions de ressources personnalisées pour étendre considérablement les capacités de la ressource Ingress en fournissant un grand nombre de plug-ins, permettant aux développeurs de se concentrer sur la valeur métier principale. Kong dispose d'une suite d'outils d'entreprise qui peuvent considérablement améliorer la productivité et la sécurité tout au long du cycle de vie de votre API.

Marco Palladino, un inventeur, développeur de logiciels et entrepreneur Internet basé à San Francisco, est le CTO et co-fondateur de Kong Inc.

-

Le New Tech Forum offre un lieu pour explorer et discuter des technologies d'entreprise émergentes avec une profondeur et une ampleur sans précédent. La sélection est subjective, basée sur notre choix des technologies que nous pensons importantes et qui intéressent le plus les lecteurs. n'accepte pas les supports marketing pour la publication et se réserve le droit de modifier tout le contenu fourni. Envoyez toutes vos demandes à [email protected]