Instalación de aplicaciones existentes con Helm
Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server
En este artículo se describe cómo configurar y usar Helm para instalar y administrar aplicaciones de Kubernetes en un clúster de Kubernetes en AKS habilitado por Azure Arc.
Helm es una herramienta de empaquetado de código abierto que ayuda a instalar y administrar el ciclo de vida de las aplicaciones de Kubernetes. De forma similar a los administradores de paquetes de Linux, como APT y Sum, Helm administra gráficos de Kubernetes, que son paquetes de recursos de Kubernetes preconfigurados.
Antes de empezar
Compruebe que tiene configurados los requisitos siguientes:
- Un clúster de Kubernetes con al menos un nodo de trabajo de Linux que esté en funcionamiento.
- Configuró el entorno local
kubectl
para que apunte al clúster. Puede usar el comando de PowerShell Get-AksHciCredential para acceder al clúster mediantekubectl
. - Se instalan la línea de comandos de Helm v3 y los requisitos previos.
- Puede usar la CLI de Azure para ejecutar comandos, si lo prefiere a PowerShell.
Importante
Helm está diseñada para ejecutarse en nodos de Linux. Si el clúster tiene nodos de Windows Server, debe asegurarse de que los pods de Helm estén programados para ejecutarse solo en nodos de Linux. También debe asegurarse de que los gráficos de Helm que instale estén programados para ejecutarse en los nodos correctos. Los comandos de este artículo usan selectores de nodos para asegurarse de que los pods están programados para los nodos correctos, pero no todos los gráficos de Helm exponen un selector de nodos. También puede usar otras opciones, como taints, en el clúster.
Comprobación de la versión de Helm
Use el comando helm version
para comprobar que tiene Helm 3 instalado:
helm version
En el siguiente ejemplo se muestra la versión 3.5.4 de Helm instalada:
version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"clean", GoVersion:"go1.15.11"}
Instalación de una aplicación con Helm v3
Adición de repositorios de Helm
Use el comando helm repo para agregar el repositorio ingress-nginx.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Búsqueda de gráficos de Helm
Los gráficos de Helm se usan para implementar aplicaciones en un clúster de Kubernetes. Para buscar los gráficos de Helm creados previamente, use el comando helm search:
helm search repo ingress-nginx
En la siguiente salida de ejemplo condensada se muestran algunos de los gráficos de Helm disponibles para usar:
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 3.30.0 0.46.0 Ingress controller for Kubernetes using NGINX a...
Para actualizar la lista de gráficos, use el comando helm repo update.
helm repo update
El ejemplo siguiente muestra una actualización de repositorio correcta:
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
Update Complete. Happy Helming!
Ejecución de gráficos de Helm
Para instalar gráficos con Helm, use el comando helm install y especifique un nombre de versión y el nombre del gráfico que se va a instalar. Para ver una instalación de gráficos de Helm en acción, instale una implementación básica de nginx mediante un gráfico de Helm.
El siguiente comando se proporciona dos veces, uno para su uso en la CLI de Azure y otro para usarlo en una consola de PowerShell:
helm install my-nginx-ingress ingress-nginx/ingress-nginx \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
helm install my-nginx-ingress ingress-nginx/ingress-nginx `
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux `
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
En la siguiente salida de ejemplo condensada se muestra el estado de implementación de los recursos de Kubernetes creados mediante el gráfico de Helm:
> --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
> --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
NAME: my-nginx-ingress
LAST DEPLOYED: Fri May 14 17:43:27 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller'
...
Use el comando kubectl get services
para obtener el valor de EXTERNAL-IP del servicio:
kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller
Por ejemplo, el siguiente comando muestra external-IP para el servicio my-nginx-ingress-ingress-nginx-controller:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
my-nginx-ingress-ingress-nginx-controller LoadBalancer 10.98.53.215 <EXTERNAL-IP> 80:31553/TCP,443:30784/TCP 72s app.kubernetes.io/component=controller,app.kubernetes.io/instance=my-nginx-ingress,app.kubernetes.io/name=ingress-nginx
Lista de versiones
Para ver una lista de las versiones instaladas en el clúster, use el comando helm list
.
helm list
En el siguiente ejemplo se muestra la versión de my-nginx-ingress implementada en el paso anterior:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-nginx-ingress default 1 2021-05-14 17:43:27.1670709 +0000 UTC deployed nginx-ingress-3.30.0 0.46.0
Limpieza de recursos
Al implementar un gráfico de Helm, se crean muchos recursos de Kubernetes. Estos recursos incluyen pods, implementaciones y servicios. Para limpiar estos recursos, use el comando helm uninstall y especifique el nombre de la versión, como se encuentra en el comando anteriorhelm list
:
helm uninstall my-nginx-ingress
En la salida de ejemplo siguiente se muestra que se ha desinstalado la salida my-nginx-ingress :
release "my-nginx-ingress" uninstalled
Pasos siguientes
Para más información sobre cómo administrar las implementaciones de aplicaciones de Kubernetes con Helm, consulte la documentación de Helm.