Comment utiliser HAProxy comme contrôleur d'entrée dans l'environnement Kubernetes

Comment Utiliser Haproxy Comme Controleur D Entree Dans L Environnement Kubernetes



Kubernetes est l'option idéale pour tous ceux qui cherchent à automatiser le déploiement, la mise à l'échelle et la gestion d'une application conteneurisée. Dans un environnement Kubernetes, un contrôleur d'entrée est essentiel pour gérer un accès externe à tout service de cluster Kubernetes. Le contrôleur d'entrée agit comme un espace d'entrée pour le trafic externe, ce qui vous permet de définir le routage et la manière dont vous souhaitez contrôler le trafic vers le service. Vous pouvez utiliser différents contrôles d'entrée, mais dans ce cas, nous nous concentrerons sur HAProxy et l'utiliserons pour implémenter les règles que nous définissons dans notre ressource d'entrée.

Qu'est-ce qu'un contrôleur d'entrée ?

Un contrôleur d'entrée est un composant qui permet aux utilisateurs de gérer et de contrôler l'accès aux services au sein de leur cluster Kubernetes. Le contrôleur d'entrée comporte deux éléments clés :

  1. La ressource d'entrée – Il s'agit d'un objet API Kubernetes qui définit les règles de routage du trafic des services du cluster en fonction du nom d'hôte et des chemins spécifiés.
  2. Le contrôleur d'entrée – Il s'agit d'un composant logiciel tel que HAProxy, Traefik ou NGINX qui implémente les règles spécifiées dans la ressource d'entrée. Il configure l'équilibreur de charge pour gérer le trafic en fonction des modifications apportées aux objets d'entrée.

Comment utiliser HAProxy comme contrôleur d'entrée dans l'environnement Kubernetes

Après avoir compris ce qu'est un contrôleur d'entrée et pourquoi vous en avez besoin, la tâche suivante consiste à aborder les étapes pour l'utiliser. Dans notre cas, nous avons configuré HAProxy comme contrôleur d'entrée en suivant les étapes fournies.







Remarque : Assurez-vous que votre cluster Kubernetes est opérationnel. Ensuite, procédez comme suit.



Étape 1 : démarrez votre cluster Kubernetes
Il existe différentes manières de configurer et de démarrer un cluster Kubernetes. Pour ce guide, nous utilisons Minikube. C'est un outil qui offre un moyen simpliste de déployer Kubernetes dans une machine virtuelle ou Docker, surtout si vous avez votre Kubernetes localement sur votre machine.



Se référer au Documentation Minikube sur les commandes d'installation à utiliser pour votre plateforme. Pour ce cas, nous exécutons une architecture Linux « x64 » stable et exécutons les commandes suivantes :





$ boucler -IL https : // stockage.googleapis.com / minikube / sorties / dernier / minikube-linux-amd64
$ sudo installer minikube-linux-amd64 / usr / locale / poubelle / minikube

La première commande récupère le dernier binaire stable Minikube, tandis que la deuxième commande installe et déplace le binaire dans le chemin spécifié.

Une fois que vous avez installé Minikube, démarrez-le pour afficher le cluster.



$ démarrage du minikube

Vous devez ensuite avoir installé kubectl pour accéder au cluster. Cependant, vous pouvez utiliser la version kubectl disponible avec Minikube. Par exemple, pour vérifier les détails des pods en cours d'exécution, vous exécutez la commande « kubectl » comme suit :

$ minikube kubectl -- obtenir des dosettes -UN

De cette façon, vous n’avez pas besoin d’installer Kubectl. Le (–) signale que les commandes sont destinées à kubectl, pas à Minikube.

Étape 2 : créer un espace de noms
La deuxième étape consiste à créer un espace de noms dédié pour le contrôleur d'entrée. Nous avons nommé l'espace de noms « haproxy-controller ».

$ minikube kubectl crée un espace de noms haproxy-controller

Étape 3 : Créer et déployer le contrôleur d'entrée HAProxy
La manière dont vous créez le contrôleur d’entrée dépend de ce que vous souhaitez réaliser. Par exemple, vous pouvez créer un contrôleur d'entrée HAProxy pour acheminer un trafic HTTP en fonction du nom d'hôte demandé. Dans un tel cas, commencez par accéder à votre serveur DNS et créez un enregistrement « A » pour mapper le nom d'hôte cible à votre cluster.

Une fois que vous avez votre enregistrement « A » correct, créez le fichier YAML de votre contrôleur d'entrée comme indiqué dans l'image suivante. Dans la première section, nous avons créé une ressource de déploiement qui utilise l'image du conteneur Docker « jmalloc/echo-server » comme exemple.

Dans la deuxième section du fichier YAML, nous avons créé la ressource Service qui est mappée en fonction du nom d'hôte demandé dans le contrôleur d'entrée créé à l'étape 4.

Enregistrez le fichier et déployez-le sur votre cluster à l'aide de kubectl. Nous référençons le Minikube kubectl en exécutant la commande suivante pour notre cas. Notre contrôleur d'entrée HAProxy est « linuxhint-jmaildeployment.yaml ».

$ minikube kubectl -- appliquer -F < nom de fichier >

Une fois que vous obtenez un résultat indiquant que le service a été créé, vous pouvez vérifier davantage qu'il a été déployé à l'aide de la commande suivante :

$ minikube kubectl -- obtenir des dosettes --espace de noms haproxy-contrôleur

Assurez-vous d'utiliser l'espace de noms correct que vous avez créé à l'étape 1. Vous obtiendrez une sortie confirmant que le service est disponible, ce qui signifie que le déploiement a réussi.

Étape 4 : Créer et déployer une ressource d'entrée
Créez un autre fichier YAML qui fait office de ressource d'entrée contenant les règles sur la façon dont HAProxy doit acheminer votre trafic. Assurez-vous d'utiliser le nom de domaine (hôte) correct que vous ciblez et ajustez le nom et le port souhaité pour accepter le trafic entrant.

Enregistrez le fichier de ressources d'entrée HAProxy et déployez-le comme nous l'avons fait avec le contrôleur.

$ minikube kubectl -- appliquer -F < nom de fichier >

Nous nommons notre ressource d'entrée « linuxhint-ingresscontroller.yaml ».

C'est ça! Avec la commande suivante, vous pouvez vérifier que votre contrôleur d'entrée HAProxy fonctionne en vérifiant le port attribué au NodePort.

$ minikube kubectl -- obtenir le service haproxy-kubernetes-ingress --espace de noms haproxy-contrôleur

Dans ce cas, le port 32448 lui est attribué. Vous pouvez accéder au service créé en utilisant le port et vérifier son état.

Avec cela, vous avez réussi à utiliser HAProxy comme contrôleur d'entrée dans un environnement Kubernetes.

Conclusion

Un contrôleur d'entrée vous permet de définir comment gérer le trafic vers votre cluster en fonction des règles définies dans votre fichier de ressources d'entrée. HAProxy est un contrôleur d'entrée fiable que vous pouvez utiliser dans un cluster Kubernetes, et cet article explique les étapes à suivre pour l'utiliser. Essayez-le et profitez de l'utilisation de HAProxy comme contrôleur d'entrée.