Volver al blog

Despliegue de aplicaciones en Kubernetes utilizando Argo CD y GitOps

Despliegue de aplicaciones en Kubernetes utilizando Argo CD y GitOps

Introducción

Kubernetes se ha convertido en un estándar para desplegar aplicaciones grandes. Ayuda a los desarrolladores a obtener ventajas significativas y ofrece características que no están disponibles en el alojamiento de servidores tradicional. Kubernetes permite el escalado horizontal sin las complicaciones de la infraestructura. Además, reduce el costo de adquirir y mantener la infraestructura a medida que la aplicación crece.

Sin embargo, administrar aplicaciones en Kubernetes también puede ser complejo y exige habilidades avanzadas. Desplegar aplicaciones utilizando Kubernetes y el proceso de Integración Continua y Despliegue Continuo (CI/CD) ayuda a superar este proceso complejo al proporcionar abstracción. GitOps es una de las herramientas que puede ayudar a lograr la abstracción.

En este tutorial, demostraremos cómo usar Argo CD para integrar y desplegar aplicaciones de forma continua en Kubernetes. Cada vez que se envía un cambio al repositorio, se despliega en el clúster de destino. Argo CD también proporciona controles de versiones, configuraciones y entornos de aplicaciones al integrarse con todo el ciclo de vida del desarrollo de software. Si tiene gestores de paquetes para Kubernetes como Helm, o si tiene su repositorio alojado en BitBucket o GitLab, Argo CD también puede integrarse perfectamente con todas estas plataformas.

Requisitos previos

Para completar este tutorial, debe tener:

Paso 1 – Instalar Argo CD

Antes de que podamos instalar Argo CD, necesitamos tener un entorno de Kubernetes ejecutándose con kubectl. Puede probar esto ejecutando el siguiente comando:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Nodes

Debería ver al menos un nodo de Kubernetes ejecutándose en el estado Ready. Si no hay ningún nodo disponible, debe volver a verificar su instalación de Kubernetes. A continuación, crearemos un espacio de nombres separado para nuestra instalación de Kubernetes. Llamémoslo argocd. Mantendremos el servicio relacionado con Argo CD en este espacio de nombres:

Después de eso, instale los scripts de Argo CD en el espacio de nombres recién creado anteriormente ejecutando el siguiente comando:

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Para verificar el estado de los pods de Kubernetes, ejecute el siguiente comando:

Obtendrá un resultado como el siguiente:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

Aquí ha concluido con éxito la instalación de Argo CD. Para salir de la interfaz watch, puede presionar Ctrl + C. Para acceder a los servicios en este clúster de Kubernetes, necesitaremos redirigir los puertos. Le mostraremos cómo hacerlo en el siguiente paso.

Paso 2 – Redirigir puertos para acceder a Argo CD

Kubernetes puede desplegar su aplicación en cualquier puerto de su elección. Por lo tanto, es necesario redirigir los puertos de la aplicación de Kubernetes para acceder a ellos desde la máquina local. Argo CD expone un servicio llamado argocd-server que utiliza el puerto 443. El puerto 443 es el puerto predeterminado para los servicios HTTPS y HTTP. Puede redirigir los puertos de Kubernetes a un puerto de su elección. En nuestro ejemplo a continuación, hemos redirigido el puerto a 8080. Para redirigir puertos, ejecute el siguiente comando en la terminal:

Una vez que reenvíe el puerto, este se bloqueará para que los otros servicios no puedan acceder a él. Para tener un acceso sin interrupciones, siempre se recomienda ejecutar el comando mencionado anteriormente en una nueva terminal. Una vez que termine, puede presionar Ctrl+C para salir del proceso de reenvío de puertos.

Después de haber reenviado el puerto, puede navegar a Argo CD dirigiéndose a localhost:8080. Se le pedirán las credenciales que puede obtener desde la línea de comandos en el siguiente paso.

Step 3 – Manage Argo CD from the Command Line

Tenemos que instalar la línea de comandos de Argo CD para administrar la instalación de Argo CD. La forma recomendada de instalar Argo CD es utilizar un gestor de paquetes como Homebrew. Homebrew es una herramienta de gestión de paquetes popular para la instalación en macOS y Linux. Puede instalar Homebrew usando el siguiente comando:

Debería tener brew instalado en su máquina. Es posible que aparezca una solicitud de contraseña para iniciar sesión. Puede ejecutarlo ejecutando el siguiente comando:

Obtendrá el comando argocd después de la instalación anterior. Necesitaremos recuperar la contraseña de administrador usando el comando kubectl . Se generó automáticamente durante la instalación. A continuación se muestra el comando para obtenerla:

Ahora que ha instalado Argo CD, puede iniciar sesión usando el comando argocd login a continuación:

Deberá iniciar sesión para implementar la aplicación cuando use la línea de comandos:

Applications

Es posible que reciba una advertencia de seguridad. Si es así, presione y para continuar. Es posible que muchos usuarios deseen cambiar la contraseña una vez que hayan iniciado sesión. Si es así, ejecute el comando argocd account update-password  para cambiar la contraseña. Ahora tenemos una configuración de Argo CD completamente funcional.

Finalmente, implementaremos una aplicación en el clúster de Kubernetes utilizando el Argo CD instalado.

Step 4 – Utilize Multiple Clusters

Antes de continuar con la configuración de su aplicación, es necesario conocer la máquina de destino donde desea implementarla. En muchos de los escenarios, Argo CD y la aplicación implementada pueden ejecutarse en el mismo clúster. Este es el comportamiento predeterminado de Argo CD, pero no es una limitación. Si desea implementar la aplicación en otras máquinas de destino, primero ejecute kubectl config en su máquina:

Suponga que obtiene dos clústeres: test-deploy-cluster y test-target-cluster. Ahora, si el test-deploy-cluster es donde está su Argo CD y desea realizar la implementación en test-target-cluster, entonces ejecute el siguiente comando:

El comando anterior agregará los detalles del clúster adicional en Argo CD. También permitirá implementar servicios en el clúster de destino de Argo CD.

Step 5 – Deploy an Example Application

Finalmente ha llegado el momento de implementar aplicaciones en el clúster de Kubernetes. Utilizaremos las aplicaciones de ejemplo proporcionadas por Argo CD. También utilizaremos helm-guestbook que está construida usando Helm charts.

Para instalar la aplicación, utilizaremos el comando argo app create . Especificaremos el repositorio de Git, helm-guestbook , y pasaremos su destino y espacio de nombres predeterminados:

Puede verificar el estado de la aplicación recién creada ejecutando el comando argocd app get:

No te sorprendas si ves OutOfSync de estado. Hasta ahora hemos descargado el chart de Helm y creado un punto de entrada para él en Argo CD. Sin embargo, por la parte de Kubernetes, no hay ningún recurso asignado. Para sincronizar esta aplicación, ejecuta el siguiente comando:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

Al trabajar con GitOps, siempre es necesario sincronizar la aplicación con el upstream. Por lo tanto, cada vez que ocurre un cambio en el repositorio, Argo CD despliega la aplicación.

Hemos desplegado la aplicación utilizando la línea de comandos de Argo CD. Puedes lograr el mismo resultado utilizando la interfaz web de Argo CD. La interfaz web es muy útil si deseas verificar el estado y el funcionamiento de la aplicación. Para abrir la interfaz web, abre localhost:8080:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

Para verificar la instalación, abriremos la aplicación en el navegador. Nuestro helm-guestbook se ejecuta en el puerto 80. Si tienes alguna otra aplicación que use el puerto 80, puedes redirigir el puerto para que otras aplicaciones no se vean interrumpidas:

Finalmente, abre la url localhost:9090 en tu navegador web para ver tu aplicación en funcionamiento:

 Guestbook UI

Ahora, si un desarrollador envía código al repositorio remoto de GitHub, ArgoCD lo capturará y lo reflejará. Tus despliegues de ArgoCD se actualizarán en consecuencia, proporcionando disponibilidad continua.

Conclusión

En este tutorial, te mostramos cómo instalar y desplegar aplicaciones en Kubernetes utilizando Argo CD. Es importante asegurarse de que tus despliegues en Kubernetes sean mantenibles. GitOps podría ayudarte mucho en este sentido.

Kubernetes es ahora el estándar de los despliegues en la nube. CloudSigma tiene algunos excelentes tutoriales sobre Kubernetes que puedes consultar a continuación:

¡Feliz computación!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.