Instalación y configuración de Skaffold en Debian 12 Linux
19:35, 03.06.2024
Skaffold es una herramienta bastante popular que se necesita para el desarrollo continuo. Con esta herramienta basada en contenedores, es posible gestionar el despliegue, el desarrollo y el empuje de la aplicación, así como crear piezas para las canalizaciones de CD/CI. Scaffold puede entregar su aplicación a un clúster Kubernetes, un proyecto en la nube o un entorno Docker.
El flujo de trabajo se automatiza fácilmente gracias a la gestión de Scaffold que funciona en los clústeres de Kubernetes. En general, los desarrolladores pueden simplificar enormemente su proceso de trabajo con el uso de Skaffold. Esta herramienta funciona en segundo plano mientras los desarrolladores están codificando y el programa actualiza todo automáticamente sin instrucciones adicionales.
Explore las capacidades de Skaffold
Skaffold es realmente útil para simplificar diversos procesos, y algunos de ellos son:
- Creación de imágenes Docker y etiquetado de imágenes de manifiesto Kubernetes.
- Depuración de la aplicación.
- Cambio rápido del clúster Kubernetes tras las modificaciones en el código fuente.
- Conjunto de herramientas para la entrega e integración continuas.
He aquí un par de características de Skaffold con las que se diseñó esta herramienta:
- Bloques de construcción CD/CI ( delete/test/build/apply, y otras opciones).
- Opciones de canalización (test/ deploy/build/delete/apply/render).
- Pipeline se gestiona para crear automáticamente, lanzar, empujar aplicación, y reconocer los cambios en el código fuente.
- El valor de los componentes adicionales, como deploy/build, configuración local y variables de entorno, también son cruciales.
- Esta herramienta se considera una variante realmente ligera que puede aplicarse en componentes externos de CI/CD y Dev.
- Skaffold dispone de un método para el registro y el reenvío de puertos.
Condiciones necesarias para la instalación del Skaffold
Antes del proceso de instalación, debe saber que debe disponer de las siguientes herramientas:
- Kubectl
- Docker
- Skaffold
- Minikube
En este artículo, compartiremos nuestra experiencia práctica y le mostraremos la instalación y configuración de Skaffold en un sistema Linux (en este caso, utilizaremos Debian).
Instalación Skaffold
El proceso de instalación de Skaffold es realmente sencillo y todo lo que necesita hacer es abrir el terminal y rellenar la siguiente línea:
curl -Lo skaffold https://storage.googleapis.com/skaffold/builds/latest/skaffold-linux-arm64 && \
sudo install skaffold /usr/local/bin/
Cuando haya terminado este paso inicial, procedamos al siguiente que es igualmente importante para la funcionalidad completa.
Instrucciones para la instalación de Docker
Siga el siguiente procedimiento paso a paso para la correcta instalación de Docker en un sistema Linux:
- Actualice los paquetes introduciendo el siguiente comando en el terminal.
sudo apt update
- Instalación de los paquetes necesarios.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- Añada el repositorio Docker.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Actualice los paquetes.
sudo apt update
- Instalación del Docker.
sudo apt install docker-ce docker-ce-cli containerd.io
- Inicie Docker.
sudo systemctl start docker
sudo systemctl enable docker
Instalación de Minikube y kubectl
Kubectl es importante para la gestión de clusters Kubernetes. Para la instalación de la última versión utilice el siguiente comando:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Para instalar minikube utilice lo siguiente:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
Establecer un clúster Kubernetes con minikube
Para iniciar el establecimiento del clúster Kubernetes utilice el siguiente comando:
minikube start --profile custom
skaffold config set --global local-cluster true
eval $(minikube -p custom docker-env)
La salida del comando mencionado contendrá la información sobre las versiones de Debian y minikube y algunos consejos y descripciones de los procesos actuales.
Despliegue de aplicaciones en Kubernetes
Para simplificar la comprensión de este proceso, vamos a utilizar la app Petclinic Spring Boot como ejemplo. Para probar y desplegar la app en Kubernetes copia la app desde:
git clone https://github.com/spring-projects/spring-petclinic.git
El siguiente paso será necesario para cambiar el directorio:
cd spring-petclinic
Cree un archivo Docker que incluirá el código fuente y la imagen del contenedor. En el directorio raíz de una aplicación, cree dicho archivo y añada el siguiente contenido.
FROM maven:3.8.4-openjdk-17-slim AS build
WORKDIR /home/app
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY --from=build /home/app/target/*.jar /usr/local/lib/petclinic.jar
A continuación, utilice la siguiente línea::
docker build -t spring-petclinic-builder
Pruebe si el contenedor fue creado con:
docker run -p 8080:8080 spring-petclinic-builder
Para revisar si el programa está funcionando, puede abrir el navegador y entrar en la página web.
Ahora cuando haya revisado y probado la aplicación, procederemos con el siguiente proceso que se refiere a la ejecución de la aplicación en Kubernetes. Utiliza comandos como:
skaffold init --generate-manifests
Para el acceso de la app en Kubernetes, se debe abrir el túnel con:
$ minikube tunnel -p custom
Con el uso de run, podrá launch/build la aplicación en Kubernetes.
skaffold run -tail
Para el despliegue automático y la monitorización de las modificaciones en el código fuente, utiliza la siguiente línea:
skaffold dev
Resumen
Esta guía es importante para todos los usuarios que necesitan información profesional sobre la instalación, configuración y posterior utilización de Skaffold en el sistema Linux. El proceso de uso de esta herramienta es tan simple, que todo lo que necesita hacer es seguir la guía. Si desea obtener recomendaciones adicionales sobre el uso de Skaffold, puede encontrar los documentos en el sitio web oficial. No lo dude y empiece a probar esta impresionante herramienta ahora mismo, ¡podrá automatizar un montón de procesos en su experiencia de codificación!