Com utilitzar HAProxy com a controlador d'entrada a l'entorn Kubernetes

Com Utilitzar Haproxy Com A Controlador D Entrada A L Entorn Kubernetes



Kubernetes és l'opció ideal per a qualsevol persona que busqui automatitzar el desplegament, l'escalat i la gestió d'aplicacions en contenidors. En un entorn de Kubernetes, un controlador d'entrada és essencial per gestionar un accés extern a qualsevol servei de clúster de Kubernetes. El controlador d'entrada actua com a espai d'entrada per al trànsit extern que us permet definir l'encaminament i com voleu controlar el trànsit al servei. Podeu utilitzar diferents controls d'entrada, però en aquest cas, ens centrarem en HAProxy i l'utilitzarem per implementar les regles que definim al nostre recurs d'entrada.

Què és un controlador d'entrada?

Un controlador d'entrada és un component que permet als usuaris gestionar i controlar l'accés als serveis dins del seu clúster Kubernetes. El controlador d'entrada té dos elements clau:

  1. El recurs d'entrada – És un objecte API de Kubernetes que defineix les regles per encaminar el trànsit dels serveis del clúster en funció del nom d'amfitrió i els camins especificats.
  2. El controlador d'entrada – És un component de programari com HAProxy, Traefik o NGINX que implementa les regles que s'especifiquen al recurs d'entrada. Configura l'equilibrador de càrrega per gestionar el trànsit en funció dels canvis fets als objectes d'entrada.

Com utilitzar HAProxy com a controlador d'entrada a l'entorn Kubernetes

Després d'haver entès què és un controlador d'entrada i per què el necessiteu, la següent tasca és cobrir els passos per utilitzar-lo. Per al nostre cas, vam configurar HAProxy com a controlador d'entrada seguint els passos proporcionats.







N/B: Assegureu-vos que teniu el vostre clúster de Kubernetes en funcionament. A continuació, procediu de la següent manera.



Pas 1: inicieu el vostre clúster Kubernetes
Hi ha diferents maneres de configurar i iniciar un clúster de Kubernetes. Per a aquesta guia, utilitzem Minikube. És una eina que ofereix una manera simplista de desplegar Kubernetes dins d'una màquina virtual o Docker, especialment si teniu el vostre Kubernetes localment a la vostra màquina.



Consulteu el Documentació de Minikube a les ordres d'instal·lació que cal utilitzar per a la vostra plataforma. Per a aquest cas, executem una arquitectura de Linux 'x64' estable i executem les ordres següents:





$ rínxol -HO https: // storage.googleapis.com / minikube / llançaments / més recent / minikube-linux-amd64
$ sudo instal·lar minikube-linux-amd64 / usr / locals / paperera / minikube

La primera ordre agafa l'últim binari estable de Minikube, mentre que la segona s'instal·la i mou el binari al camí especificat.

Un cop instal·lat Minikube, inicieu-lo per mostrar el clúster.



$ inici minikube

Aleshores, heu de tenir instal·lat kubectl per accedir al clúster. Tanmateix, podeu utilitzar la versió kubectl que està disponible amb Minikube. Per exemple, per comprovar els detalls dels pods en execució, executeu l'ordre 'kubectl' de la següent manera:

$ minikube kubectl -- obtenir beines -A

D'aquesta manera, no cal que tingueu instal·lat kubectl. El (–) indica que les ordres són per a kubectl, no per a Minikube.

Pas 2: creeu un espai de noms
El segon pas consisteix a crear un espai de noms dedicat per al controlador d'entrada. Vam anomenar l'espai de noms com 'haproxy-controller'.

$ minikube kubectl crea un espai de noms haproxy-controller

Pas 3: creeu i implementeu el controlador d'entrada HAProxy
La manera com creeu el controlador d'entrada depèn del que vulgueu aconseguir. Per exemple, podeu crear un controlador d'entrada HAProxy per encaminar un trànsit HTTP en funció del nom d'amfitrió sol·licitat. En aquest cas, comenceu accedint al vostre servidor DNS i creeu un registre 'A' per assignar el nom d'amfitrió objectiu al vostre clúster.

Un cop tingueu el vostre registre 'A' correcte, creeu el fitxer YAML del controlador d'entrada tal com es mostra a la imatge següent. A la primera secció, vam crear un recurs de desplegament que utilitza la imatge del contenidor Docker 'jmalloc/echo-server' com a exemple.

A la segona secció del fitxer YAML, hem creat el recurs de servei que es mapeja en funció del nom d'amfitrió que es demana al controlador d'entrada que es crea al pas 4.

Deseu el fitxer i implementeu-lo al vostre clúster mitjançant kubectl. Fem referència al Minikube kubectl executant l'ordre següent per al nostre cas. El nostre controlador d'entrada HAProxy és 'linuxhint-jmaildeployment.yaml'.

$ minikube kubectl -- aplicar -f < nom de l'arxiu >

Un cop obtingueu una sortida que mostra que el servei s'ha creat, podeu comprovar encara més que s'ha desplegat mitjançant l'ordre següent:

$ minikube kubectl -- obtenir beines --espai de noms controlador haproxy

Assegureu-vos d'utilitzar l'espai de noms correcte que heu creat al pas 1. Obtindreu una sortida que confirma que el servei està disponible, la qual cosa significa que la implementació ha estat correcta.

Pas 4: creeu i implementeu un recurs d'entrada
Creeu un altre fitxer YAML que actuï com a recurs d'entrada que contingui les regles sobre com HAProxy hauria d'encaminar el vostre trànsit. Assegureu-vos que feu servir el nom de domini (amfitrió) correcte al qual esteu orientant i ajusteu la denominació i el port desitjat per acceptar el trànsit entrant.

Deseu el fitxer de recursos d'entrada HAProxy i desplegueu-lo tal com vam fer amb el controlador.

$ minikube kubectl -- aplicar -f < nom de l'arxiu >

Anomenem el nostre recurs d'entrada com 'linuxhint-ingresscontroller.yaml'.

Això és! Amb l'ordre següent, podeu verificar que el vostre controlador d'entrada HAProxy funciona comprovant el port assignat al NodePort.

$ minikube kubectl -- obtenir el servei haproxy-kubernetes-ingress --espai de noms controlador haproxy

En aquest cas, s'assigna el port 32448. Podeu accedir al servei creat mitjançant el port i comprovar-ne l'estat.

Amb això, vau aconseguir utilitzar HAProxy com a controlador d'entrada en un entorn Kubernetes.

Conclusió

Un controlador d'entrada us permet definir com gestionar el trànsit al vostre clúster en funció de les regles que es defineixen al fitxer de recursos d'entrada. HAProxy és un controlador d'entrada fiable que podeu utilitzar dins d'un clúster de Kubernetes, i aquesta publicació explicava quins passos heu de seguir per utilitzar-lo. Prova-ho i gaudeix utilitzant HAProxy com a controlador d'entrada.