Helm est un gestionnaire de package pour Kubernetes qui permet aux développeurs et aux opérateurs de configurer et à déployer des applications plus facilement sur les clusters Kubernetes.
Dans ce tutoriel, vous allez configurer Helm 3 et l’utiliser pour installer, reconfigurer, revenir en arrière et supprimer une instance de l’application Kubernetes Dashboard. Le dashboard (tableau de bord) est une interface graphique Kubernetes officielle basée sur le web.
Pour un aperçu conceptuel de Helm et de son écosystème de packaging, veuillez lire notre article, Une introduction à Helm.
Pour ce tutoriel, vous aurez besoin de :
Un cluster Kubernetes avec contrôle d’accès basé sur les rôles (RBAC) activé. Helm 3.1 prend en charge les clusters des versions 1.14 à 1.17. Pour plus d’informations, consultez la page des versions de Helm.
L’outil de ligne de commande kubectl
installé sur votre machine locale, configuré pour vous connecter à votre cluster. Vous pouvez en savoir plus sur l’installation de kubectl
dans la documentation officielle.
Vous pouvez tester votre connectivité avec la commande suivante :
- kubectl cluster-info
Si vous ne voyez aucune erreur, vous êtes connecté au cluster. Si vous avez accès à plusieurs clusters avec kubectl
, veillez à vérifier que vous avez choisi le contexte de cluster adéquat :
- kubectl config get-contexts
OutputCURRENT NAME CLUSTER AUTHINFO NAMESPACE
* do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin
Dans cet exemple, l’astérisque (*
) indique que nous sommes connectés au cluster do-fra1-helm3-example
. Pour changer les clusters exécutez :
- kubectl config use-context context-name
Lorsque vous êtes connecté au bon cluster, continuez à l’Étape 1 pour commencer à installer Helm.
Tout d’abord, vous allez installer l’utilitaire de ligne de commande helm
sur votre machine locale. Helm fournit un script qui gère le processus d’installation sur MacOS, Windows ou Linux.
Entrez dans un répertoire inscriptible et téléchargez le script depuis le référentiel GitHub de Helm :
- cd /tmp
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
Rendez le script exécutable avec chmod
:
- chmod u+x get_helm.sh
Vous pouvez utiliser votre éditeur de texte préféré pour ouvrir le script et l’inspecter, afin de vous assurer qu’il est sûr. Lorsque vous êtes satisfait, exécutez-le :
- ./get_helm.sh
Votre mot de passe peut vous être demandé. Saisissez-le et appuyez sur ENTER
pour continuer.
La sortie finale ressemblera à ceci :
OutputDownloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm
Maintenant que vous avez installé Helm, vous êtes prêt à utiliser Helm pour installer votre premier tableau.
Les packages logiciels Helm sont appelés des tableaux. Il existe un référentiel de tableaux conservé, appelé stable, composé principalement de tableaux communs, que vous pouvez voir dans leur référentiel GitHub. Helm n’est pas préconfiguré pour cela, vous devrez donc l’ajouter manuellement. Ensuite, à titre d’exemple, vous allez installer le tableau de bord Kubernetes.
Ajoutez le référentiel stable
en exécutant :
- helm repo add stable https://kubernetes-charts.storage.googleapis.com
Le résultat sera :
Output"stable" has been added to your repositories
Ensuite, utilisez helm
pour installer le package kubernetes-dashboard
à partir du référentiel stable
:
- helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true
Le paramètre --set
vous permet de personnaliser les variables de tableaux, que le tableau affiche pour vous permettre de personnaliser sa configuration. Ici, vous définissez la variable d’application rbac.clusterAdminRole
sur true
pour donner l’accès à votre cluster entier au tableau de bord Kubernetes.
La sortie ressemblera à :
OutputNAME: dashboard-demo
LAST DEPLOYED: Tue Mar 31 15:04:19 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
...
Notez la ligne NAME
, surlignée dans l’exemple de sortie ci-dessus. Dans ce cas, vous avez spécifié le nom dashboard-demo
. C’est le nom de la version. Une version Helm est un simple déploiement d’un tableau avec une configuration spécifique. Vous pouvez déployer plusieurs versions du même tableau, chacune ayant sa propre configuration.
Vous pouvez énumérer toutes les versions dans le cluster :
- helm list
Le résultat sera similaire à celui-ci :
OutputNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1
Vous pouvez maintenant utiliser kubectl
pour vérifier qu’un nouveau service a été déployé sur le cluster :
- kubectl get services
La sortie finale ressemblera à ceci :
OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s
kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m
Notez que par défaut, le nom de service correspondant à la version est une combinaison du nom de la version Helm et du nom du tableau.
Maintenant que vous avez déployé l’application, vous utiliserez Helm pour modifier sa configuration et mettre à jour le déploiement.
La commande helm upgrade
peut être utilisée pour mettre à niveau une version avec un nouveau tableau ou un tableau mis à jour, ou pour mettre à jour ses options de configuration (variables).
Vous allez apporter une simple modification à la version dashboard-demo
pour démontrer le processus de mise à jour et de démantèlement : vous allez mettre à jour le nom du service du tableau de bord en kubernetes-dashboard
, au lieu de dashboard-demo-kubernetes-dashboard
.
Le tableau kubernetes-dashboard
fournit une option de configuration fullnameOverride
pour contrôler le nom du service. Pour renommer la version, exécutez helm upgrade
avec ce jeu d’options :
- helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values
En passant l’argument --reuse values
, vous vous assurez que les variables de tableau que vous avez précédemment définies
ne seront pas réinitialisées par le processus de mise à niveau.
Vous verrez une sortie semblable à l’étape initiale d'installation de helm
.
Vérifiez si vos services Kubernetes reflètent les valeurs mises à jour :
- kubectl get services
La sortie ressemblera à ce qui suit :
OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m
kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s
Notez que le nom du service a été mis à jour avec la nouvelle valeur.
Remarque : à ce stade, vous pouvez charger le tableau de bord Kubernetes dans votre navigateur et le consulter. Pour ce faire, exécutez d’abord la commande suivante :
- kubectl proxy
Cela crée un proxy qui vous permet d’accéder aux ressources de cluster à distance depuis votre ordinateur local. En fonction des instructions précédentes, votre service de tableau de bord est nommé kubernetes-dashboard
et il fonctionne dans le namespace par default
. Vous pouvez maintenant accéder au tableau de bord grâce à l’URL suivante :
http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/
Les instructions pour l’utilisation effective du tableau de bord sont hors sujet pour ce tutoriel, mais vous pouvez consulter les documents officiels du tableau de bord Kubernetes pour plus d’informations.
Ensuite, vous verrez la capacité de Helm à revenir en arrière et à supprimer les versions.
Lorsque vous avez mis à jour la version dashboard-demo
à l’étape précédente, vous avez créé une deuxième révision de la version. Helm conserve tous les détails des versions précédentes si vous devez revenir sur une configuration ou un tableau précédents.
Utilisez helm list
pour inspecter à nouveau la version :
- helm list
Vous verrez la sortie suivante :
OutputNAME REVISION UPDATED STATUS CHART NAMESPACE
dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default
La colonne REVISION
vous indique que c’est maintenant la deuxième révision.
Utilisez helm rollback
pour revenir à la première révision :
- helm rollback dashboard-demo 1
Vous devriez voir la sortie suivante, indiquant que le retour en arrière a réussi :
OutputRollback was a success! Happy Helming!
À ce stade, si vous lancez à nouveau kubectl get services
, vous remarquerez que le nom du service est revenu à sa valeur précédente. Helm a re-deployé l’application avec la configuration de révision 1.
Les versions Helm peuvent être supprimées avec la commande helm delete
:
- helm delete dashboard-demo
Le résultat sera :
Outputrelease "dashboard-demo" uninstalled
Vous pouvez essayer de lister les versions de Helm :
- helm list
Vous verrez qu’il n’y en a pas :
OutputNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
Maintenant, la version a été réellement supprimée, et vous pouvez réutiliser le nom de la version.
Dans ce tutoriel, vous avez installé l’outil de ligne de commande de helm
et étudié l’installation, la mise à niveau, le retour en arrière et la suppression des tableaux de bord et des versions de Helm en gérant le tableau kubernetes-dashboard
.
Pour plus d’informations sur Helm et les tableaux de Helm, veuillez consulter la documentation officielle de Helm.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!