Comment déployer des applications sur Kubernetes en utilisant Helm
Cet article est la suite de mon article« Qu’est-ce que Helm et comment l’installer sur un serveur Ubuntu 20.04 ?« . Si tu ne connais pas Helm, je te recommande de parcourir d’abord l’article que j’ai mentionné. Dans cet article, nous allons libérer Apache du tableau existant. Nous allons créer un exemple de tableau et le libérer, le mettre à niveau, le rétablir, le supprimer et le restaurer. Voyons les commandes en bref avant de les utiliser plus tard dans l’article.
- helm search: Recherche les diagrammes Helm
- helm repo: Effectue des opérations comme ajouter, lister, supprimer, mettre à jour et indexer sur le Référentiel
- helm delete: Supprime le graphique qui, à son tour, supprime tous ses objets Kubernetes.
- helm status: Affiche le statut de la version.
- helm create: Crée un graphique helm.
- helm install: Installe un graphique qui crée à son tour ses objets Kubernetes.
- helm upgrade: Mets à niveau une version avec les modifications que nous lui avons apportées.
- helm history: Obtiens l’historique de la version.
- helm rollback: Annule les modifications apportées à la version précédente.
Avant de poursuivre, il est supposé que tu connais les bases de Helm. Il est également supposé que tu as un cluster Kubernetes et que le client helm y est déjà installé.
Pré-requis
- Cluster Kubernetes avec au moins 1 nœud de travail.
Si tu veux apprendre à créer un cluster Kubernetes, cliqueici. Ce guide t’aidera à créer un cluster Kubernetes avec 1 maître et 2 nœuds sur des instances EC2 AWS Ubuntu 18.04. - Helm est installé sur ton nœud maître (cherche mon article intitulé « Qu’est-ce que Helm et comment l’installer sur un serveur Ubuntu 20.04 » pour comprendre les bases de Helm et l’installer).
Que ferons-nous ?
- Libère un exemple de graphique à partir du repo.
- Crée un graphique et publie un exemple d’application.
- Mettre à jour la version.
- Restaurer la version après sa suppression
Diffuser un exemple de graphique à partir du dépôt officiel
Tout d’abord, vérifions si le « helm » est disponible sur le serveur ou non.
Version de helm
À titre d’exemple, essayons d’installer une carte Apache à partir du hub. Exécute la commande suivante pour rechercher Apache sur le hub.
helm search hub apache
Tu obtiendras une série de résultats. Copie l’URL de l’une des recherches pour Apache. Dans ce cas, j’ai copié la première URL.
Appuie sur l’URL dans le navigateur Web et tu verras une page comme celle-ci.
Sur cette page, tu obtiendras des commandes pour ajouter un repo à ton système local et installer le tableau à partir de celui-ci.
Exécute les commandes sur ton système local qui ajouteront le référentiel pour la carte Apache.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
Une fois que tu as le référentiel sur ton système, tu es prêt à installer la charte et à créer une version pour Apache à l’aide de Helm.
helm install my-release bitnami/apache
Une fois les commandes exécutées avec succès, tu verras la sortie comme ci-dessus.
Une fois que la carte est libérée, tu peux voir les objets qui ont été créés sur le cluster Kubernetes.
kubectl get nodes
kubectl get pods
Tu peux maintenant obtenir l’IP du pod et essayer d’accéder à la page Apache à l’aide de la commande curl.
kubectl get pods -o wide
kubectl get svc
curl 10.244.1.2:8080
Si tu veux supprimer la release, tu peux le faire simplement en utilisant la commande suivante
helm delete my-release
Tu peux lister les releases sur le cluster et voir si la release a été supprimée avec succès ou non.
helm ls
helm status my-release
Créer un graphique et déployer un exemple d’application
Dans le scénario ci-dessus, nous avons installé un graphique qui était facilement disponible et configuré. Nous pouvons créer notre propre graphique et publier notre application. Créer un graphique est très simple avec helm. Si tu exécutes la commande suivante, tu obtiendras un graphique contenant un exemple d’application Nginx.
helm create my-first-chart
Explore la structure du dossier du graphique que nous avons créé à l’aide de la commande ci-dessus.
cd mon-premier-chart/
ls -l
ls -l charts/
ls -l templates/
ls -l templates/tests/
Vérifie le contenu du fichier Chart.yaml.
ls -lt
cat Chart.yaml
Vérifie le contenu du fichier values.yaml
ls -lt
cat values.yaml
Maintenant, déployons l’application d’exemple en utilisant le graphique local.
pwd
cd .
ls -l | grep my-first-chart
kubectl get pods
helm install my-first-release my-first-chart/
Une fois que la carte est libérée avec succès, tu peux voir un pod créé dans le cluster.
kubectl get pods
kubectl get svc
Tu peux maintenant accéder au pod Nginx via le service.
curl 10.104.229.187
Tu peux trouver des informations concernant la version que nous avons créée en utilisant la commande suivante.
helm ls
helm status my-first-release
Mettre à niveau la version
Dans le scénario ci-dessus, nous avons créé un graphique avec un exemple d’application Nginx. Le nombre de répliques dans le scénario ci-dessus était de 1. Si tu veux augmenter le nombre de répliques, tu peux facilement le faire en apportant des modifications au fichier values.yaml.
cat my-first-chart/values.yaml | grep replica
vim mon-premier-chart/values.yaml
cat mon-premier-chart/values.yaml | grep replica
helm ls
Maintenant, tu peux facilement déployer tes changements et mettre à niveau ta version.
helm upgrade my-first-release my-first-chart/
Tu peux même remarquer que la révision de la version est passée à 2.
helm ls
Cette fois, tu peux voir que deux pods fonctionnent dans le cluster car nous avions spécifié le nombre de répliques à 2.
kubectl get pods
helm ls
Si nous vérifions l’historique de la version, nous remarquerons que la version a deux révisions. La première révision comportait 1 pod et plus tard, nous avons mis à jour le nombre de répliques à 2, ce qui a créé la révision 2 de la version.
helm history my-first-release
Si nous ne voulons pas des changements publiés dans la révision 2 et que nous voulons revenir à la révision 1, nous pouvons simplement le faire en utilisant la commande rollback suivante.
helm rollback ma-première-version 1
helm ls
Et cela créera la révision 3 de la version.
helm history ma-première-version
Tu peux maintenant voir qu’il n’y a qu’un seul pod en cours d’exécution dans le cluster.
kubectl get pods
Si tu veux supprimer l’exemple d’application Nginx publié dans le tableau, tu peux le supprimer en supprimant la version.
helm ls
helm delete my-first-release
helm ls
Restaurer la release après l’avoir supprimée
Dans le scénario ci-dessus, nous avons supprimé la release. Mais par défaut, la version ne conserve pas l’historique des versions lorsqu’elle est supprimée. Si tu veux revenir en arrière dans un tel scénario, tu ne pourras pas le faire à moins de spécifier l’option –keep-history à la commande delete release.
helm ls
helm install my-second-release my-first-chart/
helm ls
Si tu spécifies l’option –keep-history lors de la suppression de la version, helm créera une nouvelle version de la version. De cette façon, tu peux revenir à la version de travail précédente même après avoir supprimé la version ou l’application.
helm delete my-second-release –keep-history
helm ls
helm ls -a
helm history my-second-release
helm rollback my-second-release 1
heaume ls
heaume historique ma-seconde-version
Conclusion
Dans cet article, nous avons déployé un exemple d’application à partir de la carte Helm disponible sur Internet. Nous avons même vu les étapes pour créer une carte Helm sur notre système et la publier. En plus de cela, nous avons vu comment supprimer les diagrammes Helm, revenir aux versions précédentes et préserver l’historique des versions même après avoir supprimé le chat.