Helm es un administrador de paquetes para Kubernetes que permite a los desarrolladores y operadores configurar e implementar de forma más sencilla aplicaciones en los clústeres de Kubernetes.
A través de este tutorial, configurará Helm 3 y lo utilizará para instalar, volver a configurar, restaurar y eliminar una instancia de la aplicación Kubernetes Dashboard. El panel es una GUI de Kubernetes oficial basado en la web.
Para obtener una descripción general conceptual de Helm y su ecosistema de paquetes, lea nuestro artículo Introducción a Helm.
Para este tutorial, necesitará lo siguiente:
Un clúster de Kubernetes con control de acceso basado en roles (RBAC) habilitado. Helm 3.1 admite clústeres de las versiones 1.14 a 1.17. Para obtener más información, consulte la página de versiones de Helm.
La herramienta de línea de comandos kubectl
instalada en su máquina local, configurada para establecer conexión con su clúster. Puede leer más sobre la instalación de kubectl
en la documentación oficial.
Puede probar su conectividad con el siguiente comando:
- kubectl cluster-info
Si no ve errores, estará conectado al clúster. Si accede a varios clústeres con kubectl
, asegúrese de verificar que haya seleccionado el contexto de clúster correcto:
- kubectl config get-contexts
OutputCURRENT NAME CLUSTER AUTHINFO NAMESPACE
* do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin
En este ejemplo, el asterisco (*
) indica que se estableció conexión con el clúster do-fra1-helm3-example
. Para cambiar de clústeres ejecute:
- kubectl config use-context context-name
Cuando esté conectado al clúster correcto, continúe con el paso 1 para comenzar a instalar Helm.
Primero, instalará la utilidad de línea de comandos helm
en su máquina local. Helm proporciona una secuencia de comandos que gestiona el proceso de instalación en MacOS, Windows o Linux.
Pase a un directorio editable y descargue la secuencia de comandos del repositorio de GitHub de Helm:
- cd /tmp
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
Haga que la secuencia de comandos sea ejecutable con chmod
:
- chmod u+x get_helm.sh
Puede utilizar su editor de texto favorito para abrir la secuencia de comandos e inspeccionarla a fin de asegurarse de que sea segura. Cuando esté satisfecho, ejecútela:
- ./get_helm.sh
Es posible que se le solicite la contraseña. Ingrésela y presione INTRO
para continuar.
El resultado tendrá el siguiente aspecto:
OutputDownloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm
Ahora que instaló Helm, está listo para usarlo para instalar su primer chart.
Los paquetes de software de Helm se llaman charts. Hay un repositorio administrado de charts llamado stable, el cual consiste principalmente en tablas comunes que puede ver en su repositorio de GitHub. Helm no lo tiene preconfigurado en Helm. Por lo tanto, tendrá que añadirlo manualmente. Luego, a modo de ejemplo, instalará Kubernetes Dashboard.
Añada el repositorio stable
al ejecutar lo siguiente:
- helm repo add stable https://kubernetes-charts.storage.googleapis.com
El resultado será lo siguiente:
Output"stable" has been added to your repositories
Luego, utilice helm
para instalar el paquete kubernetes-dashboard
desde el repositorio stable
:
- helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true
El parámetro --set
le permite personalizar variables de chart, que el chart expone para permitirle personalizar su configuración. Aquí, establece la variable rbac.clusterAdminRole
en true
para conceder acceso a Kubernetes Dashboard a todo el clúster.
El resultado tendrá este aspecto:
OutputNAME: dashboard-demo
LAST DEPLOYED: Tue Mar 31 15:04:19 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
...
Observe la línea de NAME
, resaltada en el resultado del ejemplo anterior. En este caso, especificó el nombre dashboard-demo
. Este es el nombre de la versión. Una versión de Helm es una única implementación de un chart con una configuración específica. Puede implementar varias versiones del mismo chart, cada una con su propia configuración.
Puede enumerar todas las versiones del clúster:
- helm list
El resultado tendrá un aspecto similar a este:
OutputNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1
Ahora, podemos usar kubectl
para verificar que se haya implementado un nuevo servicio en el clúster:
- kubectl get services
El resultado tendrá el siguiente aspecto:
OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s
kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m
Tenga en cuenta que, por defecto, el nombre del servicio correspondiente a la versión es una combinación del nombre de versión de Helm y el nombre del chart.
Ahora que implementó la aplicación, utilizará Helm para cambiar su configuración y actualizar la implementación.
El comando helm upgrade
puede utilizarse para actualizar una versión con un chart nuevo o actualizado, o para actualizar sus opciones de configuración (variables).
Realizará un cambio sencillo en la versión de dashboard-demo
para demostrar el proceso de actualización y reversión: actualizará el nombre del servicio de dashboard simplemente a kubernetes-dashboard
en lugar de dashboard-demo-kubernetes-dashboard
.
El chart kubernetes-dashboard
proporciona una opción de configuración de fullnameOverride
para controlar el nombre de servicio. Para cambiar el nombre de la versión, ejecute helm upgrade
con esta opción establecida:
- helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values
Al pasar el argumento --reuse-values
, asegúrese de que el proceso de actualización no restablezca las variables de chart que haya establecido
anteriormente.
Visualizará un resultado similar al del paso inicial de helm install
.
Verifique si sus servicios de Kubernetes reflejan los valores actualizados:
- kubectl get services
El resultado será similar a lo siguiente:
OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m
kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s
Observe que el nombre del servicio se actualizó con el nuevo valor.
Nota: En este punto, es posible que desee cargar Kubernetes Dashboard en su navegador y revisarlo. Para hacerlo, primero ejecute el siguiente comando:
- kubectl proxy
Esto crea un proxy que le permite acceder a recursos de clústeres remotos desde su computadora local. Conforme a las instrucciones anteriores, su servicio de dashboard se llama kubernetes-dashboard
y se ejecuta en el espacio de nombres default
. Ahora podrá acceder al panel en la siguiente URL:
http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/
Las instrucciones para el uso del panel quedan fuera del alcance de este tutorial, pero puede leer los documentos oficiales de Kubernetes Dashboard para obtener más información.
A continuación, verá la capacidad de revertir y eliminar versiones de Helm.
Cuando actualizó la versión de dashboard-demo
en el paso anterior, creó una segunda revisión de la versión. Helm conserva todos los detalles de las versiones anteriores en caso de que deba realizar una reversión a una configuración o un chart anterior.
Utilice helm list
para inspeccionar la versión de nuevo:
- helm list
Verá el siguiente resultado:
OutputNAME REVISION UPDATED STATUS CHART NAMESPACE
dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default
La columna REVISON
le indica que ésta es, ahora, la segunda revisión.
Utilice helm rollback
para revertir la primera revisión:
- helm rollback dashboard-demo 1
Debería ver el siguiente resultado, lo cual indica que la reversión se realizó:
OutputRollback was a success! Happy Helming!
En este punto, si ejecuta kubectl get services
de nuevo, observará que el nombre de servicio se cambió de nuevo a su valor anterior. Helm volvió a implementar la aplicación con la configuración de la revisión 1.
Es posible eliminar versiones de helm con el comando helm delete
:
- helm delete dashboard-demo
El resultado será lo siguiente:
Outputrelease "dashboard-demo" uninstalled
Puede intentar enumerar las versiones de Helm:
- helm list
Verá que no hay ninguna:
OutputNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
Con esto, la versión se eliminó realmente y podrá reutilizar el nombre de versión.
A lo largo de este tutorial, instaló la herramienta de línea de comandos helm
y exploró la instalación, la actualización, la reversión y la eliminación de charts y versiones de Helm mediante la administración del chart kubernetes-dashboard
.
Para obtener más información sobre Helm y sus charts, consulte la documentación oficial de Helm.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!