Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Helm è uno strumento per la creazione di pacchetti open source che consente di installare e gestire il ciclo di vita delle applicazioni Kubernetes. Analogamente agli strumenti di gestione pacchetti Linux come APT e Yum, Helm gestisce i grafici Kubernetes, che sono pacchetti di risorse Kubernetes preconfigurati.
In questa guida introduttiva, si usa Helm per confezionare ed eseguire un'applicazione su AKS. Per informazioni sull'installazione di un'applicazione esistente con Helm, vedere Installare applicazioni esistenti con Helm nel servizio Azure Kubernetes.
Prerequisiti
- Sottoscrizione Azure. Se non si ha una sottoscrizione Azure, è possibile creare un account free.
- Interfaccia della riga di comando di Azure o Azure PowerShell installato.
- Helm v3 installato.
Creare un Registro Azure Container
È necessario archiviare le immagini del contenitore in un Registro Azure Container per eseguire l'applicazione nel cluster del servizio Azure Kubernetes usando Helm. Il nome del Registro di sistema deve essere univoco all'interno di Azure e contenere 5-50 caratteri alfanumerici. Sono consentiti solo caratteri minuscoli. Lo SKU Basic è un punto di ingresso con costi ottimali a fini di sviluppo, che assicura l'equilibrio tra spazio di archiviazione e velocità effettiva.
Creare un gruppo di risorse Azure usando il comando az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
az group create --name myResourceGroup --location eastusCreare un Registro Azure Container con un nome univoco chiamando il comando az acr create. L'esempio seguente crea un ACR denominato myhelmacr con lo SKU Basic.
az acr create --resource-group myResourceGroup --name myhelmacr --sku BasicL'output dovrebbe essere simile all'output di esempio condensato seguente. Prendere nota del valore loginServer per il tuo ACR da usare in un passaggio successivo.
{ "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" }
Creare un cluster AKS
Il tuo nuovo cluster AKS ha bisogno di accedere ad ACR per scaricare le immagini dei container e avviarle.
Creare un cluster di Azure Kubernetes Service usando il comando az aks create con il parametro
--attach-acrper concedere al cluster l'accesso al Registro Azure Container (Registro Azure Container). L'esempio successivo crea un cluster AKS denominato myAKSCluster e concede l'accesso al registro Azure Container myhelmRegistro Azure Container. Assicurati di sostituiremyhelmacrcon il nome del tuo Azure Container Registry.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Connetti al cluster AKS
Per connettere un cluster Kubernetes in locale, usare il client da riga di comando Kubernetes kubectl.
kubectl è già installato se si usa Azure Cloud Shell.
Per installare
kubectlin locale, usare il comando az aks install-cli.az aks install-cliConfigura
kubectlper connetterti al cluster Kubernetes usando il comando az aks get-credentials. Il comando seguente ottiene le credenziali per il cluster AKS denominato myAKSCluster in myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Scaricare l'applicazione di esempio
Questa guida di avvio rapido usa l'applicazione Azure Vote.
Clonare l'applicazione da GitHub usando il comando
git clone.git clone https://github.com/Azure-Samples/azure-voting-app-redis.gitPassare alla directory
azure-voteusando il comandocd.cd azure-voting-app-redis/azure-vote/
Compilare ed eseguire il push dell'applicazione di esempio in Registro Azure Container
Compilare e pubblicare l'immagine nel Azure Container Registry usando il comando az acr build. L'esempio seguente crea un'immagine denominata azure-vote-front:v1 e la carica nel Registro Azure Container myhelmacr. Assicurarsi di sostituire
myhelmacrcon il nome del registro Azure Container.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Nota
È anche possibile importare Helm charts nel Azure Container Registry. Per altre informazioni, si veda Eseguire il push e il pull dei grafici Helm in un Registro Azure Container.
Creare il grafico Helm
Generare il grafico Helm usando il comando
helm create.helm create azure-vote-frontAggiornare azure-vote-front/Chart.yaml per aggiungere una dipendenza per il grafico redis dal repository del grafico
https://charts.bitnami.com/bitnamie aggiornareappVersionav1, come illustrato nell'esempio seguente:Nota
Le versioni dell'immagine del contenitore illustrate in questa guida sono state testate per funzionare con questo esempio, ma potrebbero non essere la versione più recente disponibile.
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: v1Aggiorna le dipendenze del chart di Helm usando il comando
helm dependency update.helm dependency update azure-vote-frontAggiornare azure-vote-front/values.yaml con le modifiche seguenti.
- Aggiungere una sezione redis per impostare i dettagli dell'immagine, la porta del contenitore e il nome della distribuzione.
- Aggiungere un backendName per connettere la parte front-end alla distribuzione redis.
- Modificare image.repository in
<loginServer>/azure-vote-front. - Modificare image.tag in
v1. - Modificare service.type in LoadBalancer.
Ad esempio:
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 ...Aggiungere una sezione
envad azure-vote-front/templates/deployment.yaml per passare il nome della distribuzione 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 }} ...
Eseguire il grafico Helm
Installare l'applicazione usando il grafico Helm usando il comando
helm install.helm install azure-vote-front azure-vote-front/Ci vogliono alcuni minuti perché il servizio restituisca un indirizzo IP pubblico. Monitorare lo stato di avanzamento usando il comando
kubectl get servicecon l'argomento--watch.kubectl get service azure-vote-front --watchQuando il servizio è pronto, il valore
EXTERNAL-IPpassa da<pending>a un indirizzo IP. PremereCTRL+Cper arrestare il processo di monitoraggiokubectl.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 2m6sPassare al load balancer dell'applicazione in un browser usando
<EXTERNAL-IP>per visualizzare l'applicazione di esempio.
Eliminare il cluster
Rimuovere il gruppo di risorse, il cluster AKS, il registro Azure Container, le immagini del contenitore archiviate nel registro Azure Container e tutte le risorse correlate usando il comando az group delete con il parametro
--yesper confermare l'eliminazione e il parametro--no-waitper tornare al prompt dei comandi senza attendere il completamento dell'operazione.az group delete --name myResourceGroup --yes --no-wait
Nota
Se il cluster del servizio Azure Kubernetes è stato creato con un'identità gestita assegnata dal sistema (l'opzione di identità predefinita in questa guida introduttiva), l'identità viene gestita dalla piattaforma e non richiede la rimozione.
Se ha creato il cluster AKS con un'entità servizio (service principal), l'entità servizio non viene rimossa quando si elimina il cluster. Per istruzioni su come rimuovere l'entità servizio, vedere le considerazioni principali sul servizio AKS e la sua eliminazione.
Passaggi successivi
Per altre informazioni sull'uso di Helm, vedere la documentazionedi Helm.