Helm es el manejador de paquetes de kubernetes.
Nos puede proporcionar las siguientes ventajas:
- Simplifica la complejidad de los despliegues
- Fácil actualización
- Se comparten fácilmente los charts
- «Rollbacks» seguros
Está diseñado para realizar las siguientes tareas:
- Crear charts desde cero
- Empaquetar los charts en archivos tgz
- Interactuar con los repositorios donde se encuentran los charts
- Instalar y desinstalar chats en kubernetes
- Manejar los «releases» de los charts instalados
Helm está compuesto por un servidor (tiller server) que corre en el cluster de kubernetes y un cliente (helm client) que corre en la máquina local.
El servidor es responsable de manejar los «releases». Interactúa con los clientes así como con la API de kubernetes. Sus principales funciones son:
- Atender peticiones del cliente helm
- Combinar un chart y la configuración para crear un release
- Instalar charts en kubernetes
- Actualizar y desisntalar charts en kubernetes
El cliente, que está isntalado en la máquina local, se encarga de lo siguiente:
- Desarrollo local de los charts
- Manejar los repositorios
- Interactuar con el servidor
- Enviar charts para ser instalados
- Enviar peticiones al server
Para instalar el cliente de helm, podemos hacerlo desde un script ejecutando los siguientes comandos:
$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh $ chmod 700 get_helm.sh $ ./get_helm.sh
Para instalar el tiller, basta con ejecutar helm init desde una máquina que tenga el cliente instalado.
Algunos comandos para usar helm son:
# version helm version # buscar helm search mysql #información del paquete helm inspect stable/mariadb #instalar helm install stable/mariadb # información sobre variables helm inspect values stable/mariadb #historial del paquete instalado helm history mariadb #listar releases del apquete helm list mariadb #eliminar paquete helm delete mariadb