(DÉCONSEILLÉ) Utiliser Helm pour déployer des conteneurs sur un cluster Kubernetes

Conseil

Pour obtenir la version mise à jour de cet article qui utilise Azure Kubernetes Service, consultez Installer des applications avec Helm dans Azure Kubernetes Service (AKS).

Avertissement

Le service Azure Container Service (ACS) est déprécié. Aucune nouvelle fonctionnalité ni fonction n’est ajoutée à ACS. L’ensemble des API, de l’utilisation du portail, des commandes CLI et de la documentation sont marquées comme dépréciées.

En 2017, nous avons introduit Azure Kubernetes Service (AKS) pour simplifier la gestion, le déploiement et les opérations liés à Kubernetes. Si vous utilisez l’orchestrateur Kubernetes, veuillez migrer vers AKS avant le 31 janvier 2020. Pour commencer, consultez Migrer vers Azure Kubernetes Service.

Pour plus d’informations, consultez l’annonce de la dépréciation d’Azure Container Service sur Azure.com.

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 que Apt-get et Yum, Helm sert à gérer les graphiques Kubernetes, qui sont des packages de ressources Kubernetes préconfigurés. Cet article montre comment utiliser Helm sur un cluster Kubernetes déployé dans Azure Container Service.

Helm comprend deux composants :

  • Helm CLI est un client qui s’exécute sur votre ordinateur en local ou dans le cloud

  • Tiller est un serveur qui s’exécute sur le cluster Kubernetes et gère le cycle de vie de vos applications Kubernetes

Prérequis

Principes de base Helm

Pour afficher des informations concernant le cluster Kubernetes sur lequel vous installez Tiller et déployez vos applications, tapez la commande suivante :

kubectl cluster-info 

kubectl cluster-info

Après avoir installé Helm, installez Tiller sur votre cluster Kubernetes en tapant la commande suivante :

helm init --upgrade

Une fois celle-ci exécutée avec succès, vous pouvez voir une sortie telle que la suivante :

Installation de Tiller

Pour afficher tous les graphiques Helm disponibles dans le référentiel, tapez la commande suivante :

helm search 

Vous pouvez voir une sortie telle que la suivante :

Recherche dans Helm

Pour mettre à jour les graphiques afin d’obtenir les dernières versions, tapez :

helm repo update 

Déployer un graphique de contrôleur d’entrée Nginx

Pour déployer un graphique de contrôleur d’entrée Nginx, tapez une seule commande :

helm install stable/nginx-ingress 

Déployer un contrôleur d’entrée

Si vous tapez kubectl get svc pour afficher tous les services en cours d’exécution sur le cluster, vous voyez qu’une adresse IP est attribuée au contrôleur d’entrée. (Pendant que l’affectation est en cours, vous voyez <pending>. Il faut quelques minutes pour terminer.)

Une fois l’adresse IP adresse attribuée, accédez à la valeur de l’adresse IP externe pour voir le serveur principal Nginx en cours d’exécution.

Adresse IP d’entrée

Pour afficher la liste des graphiques installés sur votre cluster, tapez :

helm list 

Vous pouvez abréger la commande en helm ls.

Déployer un graphique et un client MariaDB

Déployez à présent un graphique et un client MariaDB pour vous connecter à la base de données.

Pour déployer le graphique MariaDB, tapez la commande suivante :

helm install --name v1 stable/mariadb

--name est une balise utilisée pour les publications.

Conseil

Si le déploiement échoue, exécutez helm repo update puis réessayez.

Pour afficher tous les graphiques sur votre cluster, tapez :

helm list

Pour afficher tous les déploiements en cours d’exécution sur votre cluster, tapez :

kubectl get deployments 

Enfin, pour exécuter un pod pour accéder au client, tapez :

kubectl run v1-mariadb-client --rm --tty -i --image bitnami/mariadb --command -- bash  

Pour vous connecter au client, tapez la commande suivante en remplaçant v1-mariadb par le nom de votre déploiement :

sudo mysql –h v1-mariadb

Vous pouvez désormais utiliser des commandes SQL standard pour créer des bases de données, des tables, etc. Par exemple, Create DATABASE testdb1; crée une base de données vide.

Étapes suivantes

  • Pour plus d’informations sur la gestion des graphiques Kubernetes, consultez la documentation de Helm.