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

Correo electrónico cifrado con Thunderbird

En este tutorial se muestra cómo configurar el cliente de correo electrónico Mozilla Thunderbird para enviar y recibir correos electrónicos cifrados con un par de claves pública y privada generadas con GPG.

Leer

Interconexión entre dos servidores Postgres

En este post se explica brevemente cómo se puede establecer una interconexión entre dos servidores PostgreSQL.

Leer

El comando xargs

El comando xargs permite la construcción y ejecución de líneas de comando desde la entrada estándar. Este comando lee los elementos de la línea de la entrada estándar delimitados por espacios o líneas y ejecuta el comando una o más veces con el argumento inicial seguido de los elementos elementos indicados por teclado.

Leer