Cómo combinar Kubernetes y Ansible para desplegar aplicaciones

5min

Tecnologías como Kubernetes y Ansible amplifican las capacidades de automatización del despliegue de aplicaciones y con esto se apoyan los ciclos de integración, despliegue y desarrollo continuo (CI/DI). Esta automatización es uno de los pilares que sustentan las metodologías como DevOps, y uno de los principios que ha permitido la acelerada evolución de las tecnologías, brindando espacios para la innovación al eliminar tareas rutinarias dentro de los equipos de TI. Veamos cómo orquestar Kubernetes y Ansible para desplegar aplicaciones.

Índice

¿Qué son Ansible y Kubernetes?

Ansible es una herramienta para la automatización de procesos a través de script basados en el lenguaje de serialización de datos YAML (Yet another markup language). Esta herramienta facilita la implementación de infraestructura como código (IaC), apoyando las tareas como actualización, respaldo y configuraciones de base de datos, redes y aplicaciones.  

Todo ello se ejecuta a través de un PlayBook (libro de estrategias), que maneja listas con tareas y sus variables y condiciones. Estas pueden ser guardadas y ejecutadas automáticamente en diferentes hosts.

Por su parte, Kubernetes es una plataforma de orquestación de contenedores que permite gestionar el despliegue de aplicaciones en contenedores. Kubernetes ofrece mecanismos de distribución de carga y recuperación ante fallos que garantizan la disponibilidad, escalabilidad y fiabilidad de aplicaciones. 

El crecimiento de Kubernetes apoyando los entornos de DevOps se debe a sus capacidades de inmutabilidad que mantienen la consistencia de los diferentes entornos de ejecución de las aplicaciones, y automatiza la gestión de los contenedores. 

¿Cómo combinar Kubernetes y Ansible para desplegar aplicaciones?

Kubernetes y Ansible son, pues, herramientas que solucionan problemas diferentes: el primero se centra en la orquestación de contenedores de aplicaciones, y el segundo, en la automatización de procesos propios de IT. 

Ahora bien, Ansible puede apoyar la gestión de plataformas Kubernetes a través de módulos que permiten la automatización y estandarización de tareas como la administración y mantenimiento de clústeres, e incluso apoyando la colaboración entre los equipos que, al utilizar lenguaje descriptivo YAML, pueden interpretar fácilmente las tareas de configuración.

En tal sentido, podemos resaltar tres áreas claves.

Gestión de clúster

La plataforma de Kubernetes es creada en clúster, ya sean en la nube o en servidores locales que requieren la configuración, administración y mantenimiento que garanticen la estabilidad del entorno. 

Estas tareas pueden ser automatizadas con el uso de Ansible, siendo capaz de gestionar aplicaciones en diferentes servidores. Adicionalmente, garantiza la ejecución de tareas que mantengan el estado deseado de los servidores. 

Ansible elimina el proceso manual de administración de los clústeres, incluyendo un nivel de automatización adicional en la administración de estos, facilitando la tarea de los equipos y apoyando la implementación de infraestructura como código. 

Todo ello se despliega a través de un PlayBook que ejecuta la instalación de Kubernetes y de los componentes necesarios para su ejecución en cada uno de los nodos del clúster. 

Construcción de contenedores y otros objetos de Kubernetes

El trabajo que realiza Kubernetes para la orquestación de contenedores involucra la creación y destrucción de estos, así como la de otros objetos como Pods, nodos, volúmenes o servicios. Esto se realiza a partir de archivos creados manualmente que manejan la configuración de estos objetos y que son ejecutados por Kubernetes. 

Ansible trabaja a través de módulos específicos que permiten la creación de estos archivos de una manera más sencilla de comprender y, por ende, de mantener, y la extracción de la imagen de un contenedor.

Adicionalmente, a través de los PlayBooks se pueden configurar las tareas de creación y configuración de nodos tanto del nodo maestro como los trabajadores.

Ciclo de vida de las aplicaciones

Las opciones de configuración de redes, sistemas operativos, seguridad y respaldo que ofrece Ansible permiten automatizar tareas de mantenimiento no solo dentro de los servidores del clúster, sino incluso de las aplicaciones dentro de los contenedores, facilitando las tareas de mantenimiento e incrementando las bondades de Kubernetes de fiabilidad y disponibilidad.

Existen diferentes módulos de Ansible que, basados en Docker y Podman, pueden incluirse naturalmente dentro de la gestión de los clústeres de Kubernetes y apoyar el performance de estos. Adicionalmente, el lenguaje de serialización de datos YAML agrega legibilidad a las tareas de configuración de la infraestructura y permite una mayor compresión de los procesos por parte de todos los colaboradores.

En Arsys somos conscientes de la importancia de la correcta gestión de los recursos y entendemos el valor que trae la automatización en el contexto actual, y por ello, una de nuestras principales tareas es ofrecer servicios que permitan a los equipos la automatización de sus tareas y mejorar sus resultados. Porque 

Como expertos en Kubernetes, ofrecemos asesoría y el acompañamiento necesario para que la gestión del almacenamiento en tu infraestructura sea la óptima posible y se adapte a tus necesidades, siempre con el mejor talento y conocimiento técnico.

Fernando Fuentes

Productos relacionados: