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

Creación de usuarios y políticas de seguridad en Debian

En este post se explica, a través de varios casos prácticos y ejemplos, el uso adecuado de los comandos básicos para la creación de usuarios y el establecimiento de políticas de seguridad en los sistemas operativos basados en Debian.

Leer

Configurar una agregación de enlaces (bonding) en bridges Linux

Una agregación de enlaces, link aggregation o port bonding combina varias interfaces de red de forma paralela para aumentar el ancho de banda de una conexión y aportar redundancia ante fallos de una de ellas.

Leer

Escenario de enrutamiento en GNS3

En esta práctica se parte de un escenario recreado en el simulador GNS3 y, a partir de él, se enruta el tráfico entre los diferentes equipos que forman la red para permitir la comunicación entre todas las máquinas.

Leer