Las plantillas son indispensables para la automatización impulsada por GitOps

Publicado: 2022-05-27

Tabla de contenido

Automatización impulsada por GitOps

Kubernetes se hizo famoso por su facilidad de escalado y administración de aplicaciones en contenedores. Le permite ordenar y administrar nodos, piezas, contenedores, servicios y mapas de configuración a lo largo de todo el ciclo de vida de la aplicación. Fue difícil lograr tal flexibilidad y control a través de guiones.

Pero gracias al enfoque de anuncio de infraestructura de Kubernets, puede definir cambios de precisión en cualquier nivel. Kubernetes le permite integrar varias herramientas para facilitar la planificación, implementación y supervisión automatizadas de contenedores.

Una de esas herramientas es Helm, un marco de automatización adoptado por CNCF que se ha vuelto popular no solo en los círculos de Kubernetes sino también en el ecosistema de GitOps. En esta publicación, veremos cómo Helm ayuda a automatizar las aplicaciones nativas de la nube a través de Kubernetes y GitOps.

¿Qué es Helm?

Aunque se describe como un administrador de paquetes, Helm es una herramienta poderosa para automatizar la instalación, implementación, actualización y administración de aplicaciones de Kubernetes. La gestión del Manifiesto de Kubernetes es una tarea cada vez más compleja en todos los sistemas. Se requieren duplicados de varios archivos YAML y valores de código duro para una ordenación única. Kubernetes necesitaba una forma mejor de administrar los archivos YAML a través de un formato de empaquetado simple, lo que condujo a los gráficos de timón. Sin embargo, el propósito del Yelmo va más allá de la plantilla.

Gráficos

Los gráficos de Helm son unidades que se pueden usar para las aplicaciones de Kubernetes. Cada gráfico puede contener archivos, metadatos e infraestructura de aplicaciones. Los gráficos escritos en Go se almacenarán en directorios de plantillas específicas con variables, versiones y descripciones asociadas. Al almacenar estos gráficos como archivos en un repositorio, puede compartirlos con su equipo de desarrollo para su reutilización.

Una vez que se instala una copia de un gráfico en el clúster de Kubernetes, se denomina salida. Se crea una nueva versión cada vez que se usa el gráfico, lo que puede ocurrir varias veces. Las publicaciones lo ayudan a monitorear e instalar gráficos.

A continuación, se incluyen algunas reglas importantes que debe conocer al trabajar con Helm.

Chart.YAML: el archivo principal que contiene la descripción de su gráfico

Values.YAML: el archivo que contiene los valores predeterminados de su gráfico

Gráficos: un directorio con subgráficos

Plantillas: directorio de fuentes de Kubernetes definido como plantillas

Plantillas

Una carpeta de plantillas es una característica clave de Helm. Contiene los archivos de configuración de la aplicación, que luego se aplican al clúster. Los archivos en el directorio de plantillas llaman a sus valores de valores.YAML.

¿Por qué Helm?

Helm agrega un gran valor al entorno de entrega continua, ya que brinda los siguientes beneficios.

Productividad mejorada:

Helm (junto con otras herramientas de clasificación como Flux) le permite clasificar el software con un solo botón o un solo comando. Esto permitirá que su equipo se concentre únicamente en el desarrollo de software.

Facilita el proceso:

El concepto de gráficos le permite copiar el mismo gráfico en toda la canalización (desarrollo, prueba y producción) o en el flujo de trabajo de diferentes equipos. Esto reduce significativamente el problema.

Medición:

Los gráficos están diseñados para alinearse con la arquitectura del clúster de Kubernetes, lo que facilita la escalabilidad.

Retiro fácil:

Helm administra todos los lanzamientos, lo que facilita la obtención de cambios cuando surgen problemas.

GitOps aprovecha Helm y Flux

Helm puede administrar lanzamientos complejos y mantener las cosas simples a medida que mide. Sin embargo, a medida que los cambios se introduzcan gradualmente, Helm necesitará herramientas adicionales para actualizar el clúster de Kubernetes.

Flux es una excelente solución de relleno para Helm porque actúa como un puente entre Helm y todos los repositorios importantes de Git a partir de los cuales se definen todo el clúster de Kubernetes y las especificaciones de la utilidad.

Flux es una solución de automatización de implementación basada en el modelo GitOps, que convierte a Git en el punto de partida y la fuente real de todos los cambios. Flux le permite mantener la coherencia entre los repositorios de código y los clústeres de Kubernetes y automatiza la clasificación cuando se introducen cambios en el código.

En resumen, Flux Helm automatiza los lanzamientos de gráficos mediante la sincronización de gráficos de Git con el clúster de Kubernetes.

¿Cómo funciona Flux con Helm?

Para usar Flux como operador de GitOps, guarde todos los gráficos de Helm junto con sus archivos YAML y los recursos personalizados de Kubernetes en el repositorio de Git. Además, coloca imágenes inmutables de estas fuentes en un registro de contenedores.

Una vez que haya realizado un cambio en Git con la solicitud 'Pull', Flux verificará su repositorio y proporcionará los recursos necesarios. Luego, los cambios se incorporan al clúster de producción. Esto, por supuesto, simplifica el proceso y puede hacer mucho más, como pruebas de detección de humo o aprobación de cambios específicos de SRE, pero por ahora, hagámoslo simple.

Si desea obtener más información sobre cómo Flux 2 y Helm funcionan juntos para aumentar la velocidad y la confiabilidad mientras reducen el tiempo de inactividad, consulte esta charla de YouTube de Scott Rigby.

Conclusión

Helm reduce significativamente la dificultad de ejecutar Kubernetes. Agrega un gran valor a la canalización de GitOps con el concepto de gráficos o plantillas. Dicho esto, existen otros requisitos además de las plantillas, a saber, la automatización de la implementación de un extremo a otro. Aquí es donde se necesita una herramienta como Flux (o Weave GitOps, integrada en Flux) para usar el timón. Además, la solución similar a Magalix garantiza que las versiones de Helm sean compatibles y seguras.

Weave KitApps es una solución de entrega continua que le permite administrar Kubernetes a escala. Esto facilita que cualquier empresa adopte e implemente GitOps. Weave GitOps simplifica el clúster funcional con comandos como 'gitops install' para habilitar GitOps y 'gitops add app' para agregar a su aplicación. Estos comandos abstraen las tareas complejas subyacentes que, de lo contrario, estarían involucradas en la automatización de la implementación. Weave GitOps reúne toda la canalización de GitOps, incluidos Helm, Flux, Magalix y más, para que pueda comenzar con GitOps sin perder tiempo.

cómo-convertirse-en-un-vendedor-de-amazon-en-sencillos-pasos

marketing-digital-para-catering