Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. Al igual que los administradores de paquetes de Linux, como APT y Yum, Helm administra los gráficos de Kubernetes, que son paquetes de recursos de Kubernetes preconfigurados.
En esta guía de inicio rápido, usará Helm para empaquetar y ejecutar una aplicación en AKS. Para más información sobre cómo instalar una aplicación existente con Helm, consulte Instalación de aplicaciones existentes con Helm en AKS.
Requisitos previos
- Una suscripción Azure. Si no tiene una suscripción de Azure, puede crear una cuenta free.
- CLI de Azure o Azure PowerShell instalado.
- Helm v3 instalado.
Creación de un Azure Container Registry
Debe almacenar las imágenes de contenedor en una Azure Container Registry (ACR) para ejecutar la aplicación en el clúster de AKS mediante Helm. El nombre del registro debe ser único en Azure y contener 5-50 caracteres alfanuméricos. Solo están permitidos los caracteres en minúscula. La SKU básica es un punto de entrada optimizado en costos para propósitos de desarrollo que proporciona un equilibrio entre almacenamiento y rendimiento.
Cree un grupo de recursos de Azure mediante el comando az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.
az group create --name myResourceGroup --location eastusCree un Azure Container Registry con un nombre único llamando al comando az acr create. En el ejemplo siguiente se crea una instancia de ACR denominada myhelmacr con el SKU Básico.
az acr create --resource-group myResourceGroup --name myhelmacr --sku BasicEl resultado debería ser similar al siguiente ejemplo reducido. Tome nota del valor de loginServer para usarlo en la instancia de ACR en un paso posterior.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Creación de un clúster de AKS
El nuevo clúster de AKS necesita acceder a la instancia de ACR para extraer las imágenes de contenedor y ejecutarlas.
Cree un clúster de AKS con el comando az aks create y el parámetro
--attach-acrpara concederle acceso a su instancia de ACR. En el ejemplo siguiente, se crea un clúster de AKS denominado myAKSCluster y se le concede acceso a la instancia de ACR denominada myhelmacr. Asegúrese de reemplazarmyhelmacrpor el nombre de su ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Conectarse al clúster AKS
Para conectar un clúster de Kubernetes de manera local, use kubectl, el cliente de línea de comandos de Kubernetes.
kubectl ya está instalado si usa Azure Cloud Shell.
Instale
kubectllocalmente mediante el comando az aks install-cli.az aks install-cliPara configurar
kubectlpara conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. En el comando siguiente, se obtienen las credenciales del clúster de AKS llamado myAKSCluster en myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Descarga de la aplicación de ejemplo
En este inicio rápido se usa la aplicación Azure Vote.
Clone la aplicación de GitHub mediante el comando
git clone.git clone https://github.com/Azure-Samples/azure-voting-app-redis.gitVaya al directorio
azure-votemediante el comandocd.cd azure-voting-app-redis/azure-vote/
Construir y enviar la aplicación de ejemplo a ACR
Compile e inserte las imágenes en ACR mediante el comando az acr build. En el ejemplo siguiente se compila una imagen denominada azure-vote-front:v1 y se inserta en la instancia de ACR denominada myhelmacr. Asegúrese de reemplazar
myhelmacrpor el nombre de su ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Nota:
También puede importar gráficos de Helm en el ACR. Para más información, consulte Inserción y extracción de gráficos de Helm en Azure Container Registry.
Creación del gráfico de Helm
Genere el gráfico de Helm con el comando
helm create.helm create azure-vote-frontActualice azure-vote-front/Chart.yaml para agregar una dependencia para el gráfico redis desde el repositorio de gráficos
https://charts.bitnami.com/bitnamiy actualiceappVersionav1como se muestra en el siguiente ejemplo:Nota:
Las versiones de la imagen de contenedor que se muestran en esta guía se han probado para trabajar con este ejemplo, pero es posible que no sean la versión más reciente disponible.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1Actualice las dependencias de gráficos de Helm mediante el comando
helm dependency update.helm dependency update azure-vote-frontActualice azure-vote-front/values.yaml con los siguientes cambios.
- Agregue una sección redis para establecer los detalles de la imagen, el puerto del contenedor y el nombre de la implementación.
- Agregue un backendName para conectar la parte de front-end a la implementación de redis.
- Cambiar image.repository a
<loginServer>/azure-vote-front. - Cambie image.tag a
v1. - Cambiar service.type a LoadBalancer.
Por ejemplo:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...Agregue una sección
enva azure-vote-front/templates/deployment.yaml para pasar el nombre de la implementación de redis.... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Ejecución del gráfico de Helm
Instala tu aplicación usando tu gráfico de Helm con el comando
helm install.helm install azure-vote-front azure-vote-front/El servicio puede tardar unos minutos en devolver una dirección IP pública. Para supervisar el progreso, utilice el comando
kubectl get servicecon el argumento--watch.kubectl get service azure-vote-front --watchCuando el servicio está listo, el valor de
EXTERNAL-IPcambia de<pending>a una dirección IP. PresioneCTRL+Cpara detener el proceso de inspección dekubectl.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6sVaya al equilibrador de carga de la aplicación en un explorador mediante la
<EXTERNAL-IP>para ver la aplicación de ejemplo.
Eliminación del clúster
Quite el grupo de recursos, el clúster de AKS, la instancia de Azure Container Registry, las imágenes de contenedor almacenadas en ACR y todos los recursos relacionados mediante el comando az group delete con el parámetro
--yespara confirmar la eliminación y con el parámetro--no-waitpara volver al símbolo del sistema sin esperar a que se complete la operación.az group delete --name myResourceGroup --yes --no-wait
Nota:
Si ha creado el clúster de AKS con una identidad administrada asignada por el sistema (la opción de identidad predeterminada en este inicio rápido), la identidad se administra mediante la plataforma y no necesita eliminación.
Si ha creado el clúster de AKS con una entidad de servicio, la entidad de servicio no se elimina cuando elimina el clúster. Para quitar la entidad de servicio, consulte Consideraciones principales y eliminación de AKS.
Pasos siguientes
Para más información sobre el uso de Helm, consulte la documentación de Helm.