Despliegue de una aplicación en Kubernetes usando Helm

Índice

Helm es una herramienta que permite instalar aplicaciones en un cluster de Kubernetes de forma sencilla en pocos pasos.

Instalación de Helm

Para instalar Helm hay que descargar el binario de su página de descargas, descomprimirlo y moverlo al directorio de binarios del sistema.

wget https://get.helm.sh/helm-v3.17.1-linux-amd64.tar.gz
tar -zxvf helm-v3.17.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

En Debian también se puede instalar a través del gestor de paquetes apt si se añade el repositorio de los desarrolladores al fichero sources list.

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

Instalación de un CMS con Helm

En este caso, se instala con Helm el CMS Wordpress del repositorio de Bitnami. Para poder descargar el chart necesario para la instalación de esta aplicación hay que añadir primero el repositorio.

helm repo add bitnami https://charts.bitnami.com/bitnami

Tras añadir el repositorio se puede buscar la lista de charts disponibles para instalar con Helm.

❯ helm search repo wordpress
NAME                   	CHART VERSION	APP VERSION	DESCRIPTION                                       
bitnami/wordpress      	24.1.16      	6.7.2      	WordPress is the world's most popular blogging ...
bitnami/wordpress-intel	2.1.31       	6.1.1      	DEPRECATED WordPress for Intel is the most popu...

En la documentación del chart se recoge la lista de parámetros que se pueden modificar durante su despliegue. En este caso, se cambia el tipo de servicio a NodePort y el nombre del blog y se instala la aplicación con helm install.

helm install wordpress bitnami/wordpress --set service.type=NodePort --set wordpressBlogName="Blog de Javi Huete"

La instalación de la aplicación usando Helm genera todos los objetos necesarios en el cluster de Kubernetes para desplegarla.

❯ kubectl get all
NAME                            READY   STATUS    RESTARTS      AGE
...
pod/wordpress-f8b567d6d-lcgx4   1/1     Running   0             2m48s
pod/wordpress-mariadb-0         1/1     Running   0             2m48s

NAME                                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/kubernetes                   ClusterIP   10.96.0.1        <none>        443/TCP                      15d
...
service/wordpress                    NodePort    10.110.18.10     <none>        80:30594/TCP,443:32739/TCP   2m49s
service/wordpress-mariadb            ClusterIP   10.108.2.160     <none>        3306/TCP                     2m49s
service/wordpress-mariadb-headless   ClusterIP   None             <none>        3306/TCP                     2m49s

NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
...
deployment.apps/wordpress   1/1     1            1           2m49s

NAME                                  DESIRED   CURRENT   READY   AGE
...
replicaset.apps/wordpress-f8b567d6d   1         1         1       2m49s

NAME                                 READY   AGE
statefulset.apps/wordpress-mariadb   1/1     2m49s
comments powered by Disqus

Relacionados

Configuración del servidor de correos para permitir el uso de clientes externos

En este post se abordan algunos de los pasos que hay que seguir para configurar un servidor de correo para que se pueda usar con clientes externos.

Leer

Empaquetadores y compresores/descompresores en Debian

Los empaquetadores y compresores/descompresores son paquetes fundamentales en cualquier distribución de un sistema operativo. En este post se analizan varios de estos paquetes disponibles para Debian y otras distribuciones GNU/Linux

Leer

Cómo crear una instancia basada en un volumen en OpenStack

OpenStack es un proyecto de cloud computing (computación en la nube) de software libre y código abierto. Ofrece una estructura como servicio (IaaS) y permite virtualizar equipos en los servidores en los que esté configurado. En este post se muestra, a través de un ejemplo práctico cómo se puede crear una instancia basada en un volumen en OpenStack y cómo se puede volcar el contenido de un sistema a un nuevo volumen con mayor capacidad de almacenamiento.

Leer