Cómo utilizar HAProxy como controlador de ingreso en el entorno de Kubernetes

Como Utilizar Haproxy Como Controlador De Ingreso En El Entorno De Kubernetes



Kubernetes es la opción ideal para cualquiera que busque automatizar la implementación, el escalado y la administración de una aplicación en contenedores. En un entorno de Kubernetes, un controlador de ingreso es esencial para administrar el acceso externo a cualquier servicio de clúster de Kubernetes. El controlador de ingreso actúa como espacio de entrada para el tráfico externo, lo que le permite definir el enrutamiento y cómo desea controlar el tráfico al servicio. Puede usar diferentes controles de ingreso, pero para este caso, nos centraremos en HAProxy y lo usaremos para implementar las reglas que definimos en nuestro recurso de ingreso.

¿Qué es un controlador de ingreso?

Un controlador de ingreso es un componente que permite a los usuarios administrar y controlar el acceso a los servicios dentro de su clúster de Kubernetes. El controlador de ingreso tiene dos elementos clave:

  1. El recurso de ingreso – Es un objeto API de Kubernetes que define las reglas para enrutar el tráfico de los servicios en el clúster en función del nombre de host y las rutas especificadas.
  2. El controlador de ingreso – Es un componente de software como HAProxy, Traefik o NGINX que implementa las reglas que se especifican en el recurso de entrada. Configura el equilibrador de carga para manejar el tráfico en función de los cambios realizados en los objetos de entrada.

Cómo utilizar HAProxy como controlador de ingreso en el entorno de Kubernetes

Habiendo entendido qué es un controlador de ingreso y por qué lo necesita, la siguiente tarea es cubrir los pasos para usarlo. Para nuestro caso, configuramos HAProxy como nuestro controlador de ingreso siguiendo los pasos proporcionados.







NÓTESE BIEN: Asegúrese de tener su clúster de Kubernetes en funcionamiento. Luego, proceda de la siguiente manera.



Paso 1: inicie su clúster de Kubernetes
Existen diferentes formas de configurar e iniciar un clúster de Kubernetes. Para esta guía, utilizamos Minikube. Es una herramienta que ofrece una forma simplista de implementar Kubernetes dentro de una máquina virtual o Docker, especialmente si tiene Kubernetes localmente en su máquina.



Referirse a Documentación del minikube sobre los comandos de instalación que se utilizarán en su plataforma. Para este caso, ejecutamos una arquitectura Linux estable “x64” y ejecutamos los siguientes comandos:





$ rizo -LO https: // storage.googleapis.com / minikubo / lanzamientos / el último / minikube-linux-amd64
$ sudo instalar minikube-linux-amd64 / usr / local / papelera / minikubo

El primer comando toma el último binario estable de Minikube, mientras que el segundo comando instala y mueve el binario a la ruta especificada.

Una vez que haya instalado Minikube, inícielo para abrir el clúster.



$ inicio del minikube

Luego debe tener instalado kubectl para acceder al clúster. Sin embargo, puede utilizar la versión kubectl que está disponible con Minikube. Por ejemplo, para verificar los detalles de los pods en ejecución, ejecuta el comando 'kubectl' de la siguiente manera:

$ minikube kubectl -- conseguir vainas -A

De esa forma, no es necesario tener instalado kubectl. El (–) indica que los comandos son para kubectl, no para Minikube.

Paso 2: crear un espacio de nombres
El segundo paso implica crear un espacio de nombres dedicado para el controlador de ingreso. Llamamos al espacio de nombres 'haproxy-controller'.

$ minikube kubectl crea espacio de nombres controlador haproxy

Paso 3: crear e implementar el controlador de ingreso HAProxy
La forma de crear el controlador de ingreso depende de lo que desee lograr. Por ejemplo, puede crear un controlador de ingreso HAProxy para enrutar un tráfico HTTP según el nombre de host solicitado. En tal caso, comience accediendo a su servidor DNS y creando un registro 'A' para asignar el nombre de host de destino a su clúster.

Una vez que tenga su registro 'A' correcto, cree su archivo YAML del controlador de ingreso como se muestra en la siguiente imagen. En la primera sección, creamos un recurso de implementación que utiliza la imagen del contenedor Docker “jmalloc/echo-server” como ejemplo.

En la segunda sección del archivo YAML, creamos el recurso de servicio que se asigna según el nombre de host que se solicita en el controlador de entrada que se crea en el paso 4.

Guarde el archivo e impleméntelo en su clúster usando kubectl. Hacemos referencia al Minikube kubectl ejecutando el siguiente comando para nuestro caso. Nuestro controlador de ingreso HAProxy es 'linuxhint-jmaildeployment.yaml'.

$ minikube kubectl -- aplicar -F < Nombre del archivo >

Una vez que obtenga un resultado que muestre que se ha creado el servicio, puede verificar aún más que se haya implementado usando el siguiente comando:

$ minikube kubectl -- conseguir vainas --espacio de nombres controlador-haproxy

Asegúrese de utilizar el espacio de nombres correcto que creó en el paso 1. Obtendrá un resultado que confirma que el servicio está disponible, lo que significa que la implementación se realizó correctamente.

Paso 4: crear e implementar un recurso de ingreso
Cree otro archivo YAML que actúe como recurso de entrada que contenga las reglas sobre cómo HAProxy debe enrutar su tráfico. Asegúrese de utilizar el nombre de dominio (host) correcto al que se dirige y ajuste el nombre y el puerto deseado para aceptar el tráfico entrante.

Guarde el archivo de recursos de ingreso de HAProxy e impleméntelo como lo hicimos con el controlador.

$ minikube kubectl -- aplicar -F < Nombre del archivo >

Nombramos nuestro recurso de entrada como 'linuxhint-ingresscontroller.yaml'.

¡Eso es todo! Con el siguiente comando, puede verificar que su controlador de ingreso HAProxy esté funcionando verificando el puerto asignado al NodePort.

$ minikube kubectl -- obtener servicio haproxy-kubernetes-ingress --espacio de nombres controlador-haproxy

Para este caso, se le asigna el puerto 32448. Puedes acceder al servicio creado utilizando el puerto y comprobar su estado.

Con eso, logró usar HAProxy como controlador de ingreso en un entorno de Kubernetes.

Conclusión

Un controlador de entrada le permite definir cómo manejar el tráfico a su clúster según las reglas definidas en su archivo de recursos de entrada. HAProxy es un controlador de ingreso confiable que puede usar dentro de un clúster de Kubernetes y esta publicación cubrió los pasos que debe seguir para usarlo. Pruébelo y disfrute usando HAProxy como controlador de ingreso.