One place for hosting & domains

      logiciel

      Comment installer un logiciel sur des clusters Kubernetes avec le gestionnaire de packages Helm 3


      Introduction

      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.

      Conditions préalables

      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 :

      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

      Output

      CURRENT 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.

      Étape 1 — Installation de 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 :

      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 :

      Votre mot de passe peut vous être demandé. Saisissez-le et appuyez sur ENTER pour continuer.

      La sortie finale ressemblera à ceci :

      Output

      Downloading 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.

      Étape 2 — Installation d’un tableau Helm

      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 à :

      Output

      NAME: 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 :

      Le résultat sera similaire à celui-ci :

      Output

      NAME 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 :

      La sortie finale ressemblera à ceci :

      Output

      NAME 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.

      Étape 3 — Mise à jour d’une version

      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 :

      La sortie ressemblera à ce qui suit :

      Output

      NAME 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 :

      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.

      Étape 4 — Retour en arrière et suppression d’une version

      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 :

      Vous verrez la sortie suivante :

      Output

      NAME 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 :

      Output

      Rollback 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 :

      Output

      release "dashboard-demo" uninstalled

      Vous pouvez essayer de lister les versions de Helm :

      Vous verrez qu’il n’y en a pas :

      Output

      NAME 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.

      Conclusion

      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.



      Source link