Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Helm est un outil d’empaquetage open source qui vous aide à installer et à gérer le cycle de vie d’applications Kubernetes. À l’instar des gestionnaires de package Linux tels qu’APT et Yum, vous utilisez Helm pour gérer les charts Kubernetes, qui sont des packages de ressources Kubernetes préconfigurées.
Cet article vous montre comment configurer et utiliser Helm dans un cluster Kubernetes sur AKS sur Azure Kubernetes Service (AKS).
Important
Helm est prévu pour s’exécuter sur des nœuds Linux. Si vous avez des nœuds Windows Server dans votre cluster, vous devez veiller à ce que l’exécution des pods Helm soit planifiée uniquement sur des nœuds Linux. Vous devez aussi veiller à ce que les graphiques Helm que vous installez s’exécutent sur les bons nœuds. Les commandes figurant dans cet article utilisent node-selectors pour garantir que les pods sont planifiés sur les nœuds adéquats, mais il se peut que certains graphiques Helm n’exposent pas de sélecteur de nœud. Vous pouvez aussi envisager d’utiliser d’autres options sur votre cluster, comme des teintes (« taints »).
Utilisez la commande helm version
pour vérifier que Helm 3 est installé.
helm version
L’exemple de sortie suivant montre la version 3.0.0 de Helm installée :
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Ajoutez le référentiel ingress-nginx à l’aide de la commande helm repo.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Recherchez des charts Helm précréés à l’aide de la commande helm search.
helm search repo ingress-nginx
La sortie condensée suivante montre certains des graphiques Helm disponibles :
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...
Pour mettre à jour la liste des charts, utilisez la commande helm repo update.
helm repo update
L’exemple de sortie suivant montre une mise à jour de référentiel réussie :
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!⎈
Cet article utilise le graphique Helm du contrôleur d’entrée NGINX, lequel repose sur trois images de conteneurs.
Utilisez az acr import
pour importer les images du contrôleur d’entrée NGINX dans votre ACR.
REGISTRY_NAME=<REGISTRY_NAME>
CONTROLLER_REGISTRY=registry.k8s.io
CONTROLLER_IMAGE=ingress-nginx/controller
CONTROLLER_TAG=v1.8.0
PATCH_REGISTRY=registry.k8s.io
PATCH_IMAGE=ingress-nginx/kube-webhook-certgen
PATCH_TAG=v20230407
DEFAULTBACKEND_REGISTRY=registry.k8s.io
DEFAULTBACKEND_IMAGE=defaultbackend-amd64
DEFAULTBACKEND_TAG=1.5
az acr import --name $REGISTRY_NAME --source $CONTROLLER_REGISTRY/$CONTROLLER_IMAGE:$CONTROLLER_TAG --image $CONTROLLER_IMAGE:$CONTROLLER_TAG
az acr import --name $REGISTRY_NAME --source $PATCH_REGISTRY/$PATCH_IMAGE:$PATCH_TAG --image $PATCH_IMAGE:$PATCH_TAG
az acr import --name $REGISTRY_NAME --source $DEFAULTBACKEND_REGISTRY/$DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG --image $DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG
Note
En plus d’importer des images de conteneur dans votre ACR, 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.
Installez les charts avec Helm à l’aide de la commande helm install et spécifiez un nom de version et le nom du chart à installer.
Conseil
L’exemple suivant crée un espace de noms Kubernetes pour les ressources d’entrée ingress-basic et est destiné à fonctionner dans cet espace de noms. Spécifiez un espace de noms de votre propre environnement, si besoin.
ACR_URL=<REGISTRY_URL>
# Create a namespace for your ingress resources
kubectl create namespace ingress-basic
# Use Helm to deploy an NGINX ingress controller
helm install ingress-nginx ingress-nginx/ingress-nginx \
--version 4.0.13 \
--namespace ingress-basic \
--set controller.replicaCount=2 \
--set controller.nodeSelector."kubernetes\.io/os"=linux \
--set controller.image.registry=$ACR_URL \
--set controller.image.image=$CONTROLLER_IMAGE \
--set controller.image.tag=$CONTROLLER_TAG \
--set controller.image.digest="" \
--set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \
--set controller.admissionWebhooks.patch.image.registry=$ACR_URL \
--set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \
--set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \
--set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \
--set defaultBackend.image.registry=$ACR_URL \
--set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \
--set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \
--set defaultBackend.image.digest=""
La sortie condensée suivante montre l’état du déploiement des ressources Kubernetes créées par le graphique Helm :
NAME: nginx-ingress
LAST DEPLOYED: Wed Jul 28 11:35:29 2021
NAMESPACE: ingress-basic
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx 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 ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller'
...
Obtenez l’EXTERNAL-IP (Adresse IP externe) de votre service à l’aide de la commande kubectl get services
.
kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controller
L’exemple de sortie suivant montre l’EXTERNAL-IP (Adresse IP externe) pour le service ingress-nginx-ingress-nginx-controller :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
nginx-ingress-ingress-nginx-controller LoadBalancer 10.0.254.93 <EXTERNAL_IP> 80:30004/TCP,443:30348/TCP 61s app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
Obtenez la liste des versions installées sur votre cluster à l’aide de la commande helm list
.
helm list --namespace ingress-basic
L’exemple de sortie suivant montre la version ingress-nginx déployée à l’étape précédente :
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ingress-nginx ingress-basic 1 2021-07-28 11:35:29.9623734 -0500 CDT deployed ingress-nginx-3.34.0 0.47.0
Le déploiement d’un chart Helm crée des ressources Kubernetes telles que des pods, des déploiements et des services.
Nettoyez les ressources à l’aide de la commande helm uninstall et spécifiez le nom de votre version.
helm uninstall --namespace ingress-basic ingress-nginx
L’exemple de sortie suivant illustre la version nommée ingress-nginx qui a été désinstallée :
release "nginx-ingress" uninstalled
Supprimez l’espace de noms exemple en entier avec les ressources en utilisant la commande kubectl delete
et en spécifiant le nom de votre espace de noms.
kubectl delete namespace ingress-basic
Pour plus d’informations sur la gestion des déploiements d’applications Kubernetes, consultez la documentation Helm.
Commentaires sur Azure Kubernetes Service
Azure Kubernetes Service est un projet open source. Sélectionnez un lien pour fournir des commentaires:
Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantFormation
Parcours d’apprentissage
Présentation de Kubernetes dans Azure - Training
Découvrez les principes de base relatifs aux conteneurs Docker, à l’orchestration des conteneurs avec Kubernetes et aux clusters managés dans Azure Kubernetes Service.
Certification
Microsoft Certified : Azure Administrator Associate - Certifications
Faites la démonstration de compétences clés pour configurer, sécuriser et administrer des fonctions professionnelles clés dans Microsoft Azure.