Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Helm est un outil d’empaquetage open source qui vous aide à installer et à gérer le cycle de vie d’applications Kubernetes. À l'instar de gestionnaires de package Linux tels qu'APT et Yum, Helm sert à gérer les charts Kubernetes, qui sont des packages de ressources Kubernetes préconfigurées.
Dans ce guide de démarrage rapide, vous utilisez Helm pour empaqueter et exécuter une application sur AKS. Pour plus d’informations sur l’installation d’une application existante à l’aide de Helm, consultez Installer des applications existantes avec Helm dans AKS.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI ou Azure PowerShell installé.
- Helm v3 installé.
Création d’un Azure Container Registry
Vous devez stocker vos images conteneur dans un registre Azure Container Registry (ACR) pour exécuter votre application dans votre cluster AKS à l'aide de Helm. Le nom de votre registre doit être unique dans Azure et contenir entre 5 et 50 caractères alphanumériques. Seuls les caractères minuscules sont autorisés. La référence SKU De base est un point d’entrée au coût optimisé fourni à des fins de développement qui offre un bon équilibre entre stockage et débit.
Créez un groupe de ressources Azure en utilisant la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.
az group create --name myResourceGroup --location eastusCréez un Azure Container Registry avec un nom unique à l’aide de la commande az acr create. L’exemple suivant crée un registre ACR nommé myhelmacr avec la référence SKU De base.
az acr create --resource-group myResourceGroup --name myhelmacr --sku BasicVotre sortie devrait ressembler à l’exemple de sortie condensée suivant. Notez la valeur loginServer de votre registre ACR pour l’utiliser dans une étape ultérieure.
{ "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" }
Créer un cluster AKS
Votre nouveau cluster AKS doit accéder à votre ACR pour extraire les images conteneur et les exécuter.
Créez un cluster AKS en utilisant la commande az aks create avec le paramètre
--attach-acrpour accorder l’accès au cluster à votre registre ACR. L’exemple suivant crée un cluster AKS nommé myAKSCluster et lui accorde l’accès au registre ACR myhelmacr. Veillez à remplacermyhelmacrpar le nom de votre registre ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Se connecter à votre cluster AKS
Pour connecter localement un cluster Kubernetes, vous utilisez le client de ligne de commande Kubernetes, kubectl. Si vous utilisez Azure Cloud Shell, kubectl est déjà installé.
Installez
kubectlen local avec la commande az aks install-cli.az aks install-cliConfigurez
kubectlafin de vous connecter à votre cluster Kubernetes avec la commande az aks get-credentials. La commande suivante obtient les informations d’identification du cluster AKS nommé myAKSCluster dans myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Téléchargement de l'exemple d'application
Ce démarrage rapide utilise l’application Azure Vote.
Clonez l’application à partir de GitHub en utilisant la commande
git clone.git clone https://github.com/Azure-Samples/azure-voting-app-redis.gitAccédez au répertoire
azure-voteen utilisant la commandecd.cd azure-voting-app-redis/azure-vote/
Créer et envoyer (push) l’exemple d’application vers ACR
Créez et envoyez l’image à votre registre ACR en utilisant la commande az acr build. L’exemple suivant crée une image nommée azure-vote-front:v1 et l’envoie au registre ACR myhelmacr. Veillez à remplacer
myhelmacrpar le nom de votre registre ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Remarque
Vous pouvez également importer des graphiques Helm dans votre ACR. Pour plus d’informations, consultez Envoyer (push) et tirer (pull) des graphiques Helm vers un registre de conteneurs Azure.
Créer votre chart Helm
Générez votre chart Helm à l’aide de la commande
helm create.helm create azure-vote-frontMettez à jour azure-vote-front/Chart.yaml afin d’ajouter une dépendance pour le graphique redis à partir du référentiel de graphiques
https://charts.bitnami.com/bitnamiet mettez à jourappVersionversv1, comme illustré dans l’exemple suivant :Remarque
Les versions d’image conteneur indiquées dans ce guide ont été testées pour fonctionner avec cet exemple, mais peuvent ne pas être la dernière version 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: v1Mettez à jour les dépendances de votre graphique Helm en utilisant la commande
helm dependency update.helm dependency update azure-vote-frontMettez à jour azure-vote-front/values.yaml avec les modifications suivantes.
- Ajoutez une section redis pour définir les détails d’image, le port de conteneur et le nom du déploiement.
- Ajoutez un backendName pour connecter la portion frontend au déploiement redis.
- Redéfinissez image.repository sur
<loginServer>/azure-vote-front. - Redéfinissez image.tag sur
v1. - Redéfinissez service.type sur LoadBalancer.
Par exemple :
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 ...Ajoutez une section
envà azure-vote-front/templates/deployment.yaml pour transmettre le nom du déploiement 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 }} ...
Exécuter votre chart Helm
Installez votre application à l'aide de votre chart Helm en utilisant la commande
helm install.helm install azure-vote-front azure-vote-front/Le renvoi d’une adresse IP publique par le service prend plusieurs minutes. Surveillez la progression avec la commande
kubectl get serviceet l’argument--watch.kubectl get service azure-vote-front --watchLorsque le service est prêt, la valeur
EXTERNAL-IPpasse de<pending>à une adresse IP. Appuyez surCTRL+Cpour arrêter le processus de surveillance 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 2m6sAccédez à l’équilibreur de charge de votre application dans un navigateur en utilisant
<EXTERNAL-IP>pour voir l’exemple d’application.
Supprimer le cluster
Supprimez votre groupe de ressources, votre cluster AKS, votre registre de conteneurs Azure, les images conteneur stockées dans le registre ACR et toutes les ressources associées en utilisant la commande az group delete avec le paramètre
--yespour confirmer la suppression et le paramètre--no-waitpour revenir à l’invite de commandes sans attendre la fin de l’opération.az group delete --name myResourceGroup --yes --no-wait
Remarque
Si vous avez créé votre cluster AKS avec une identité managée affectée par le système (option d’identité par défaut de ce guide de démarrage rapide), cette identité est gérée par la plateforme et ne nécessite pas de suppression.
Si vous avez créé votre cluster AKS avec un principal de service, le principal de service n’est pas supprimé lorsque vous supprimez le cluster. Pour supprimer le principal de service, consultez Considérations et suppression du principal de service AKS.
Étapes suivantes
Pour plus d’informations sur l’utilisation de Helm, consultez la documentation de Helm.