rancher-add-stack

Créer une stack de services sous Rancher 1.X

Stack de services sous Rancher 1.x, comment en créer une en dix minutes

Pour suivre au précédent article technique, j’ai décidé de vous expliquer comment créer une stack applicative sur votre orchestrateur Rancher en quelques minutes. Nous prendrons l’exemple d’une stack avec deux services :

  • un wordpress
  • une base de données MySQL

Si vous avez suivi l’article Déployer Rancher 1.x en cinq minutes, vous êtes alors en possession d’un cluster tout neuf avec au moins un nœud dans la partie Infrastructure. Il ne vous reste plus qu’à ajouter une stack et des services.

Ajouter une stack

1. Une stack est un groupe de services. Elles peuvent être utilisées pour regrouper les services qui, ensemble, définissent une application.

rancher-add-stack-button
Ajouter un stack

2. Dans le menu principal cliquer sur le bouton “STACKS”, cliquez ensuite sur le bouton “Add Stack” pour arriver sur l’image ci-dessous.

rancher-create-an-empty-stack
Créer une stack vide dans rancher

3. Vous devrez au minimum fournir un nom et cliquer sur le bouton “Create”.

4. Vous serez immédiatement amené dans le menu de gestion de la “stack” et pourrez commencer à ajouter des services, ajouter des répartiteurs de charge, ajouter des alias de service ou ajouter des services externes.

rancher-empty-stack-vue
Ma nouvelle stack MonSiteVitrine vide

Rancher offre également la possibilité d’importer des fichiers de configuration. Les fichiers docker-compose.yml et rancher-compose.yml peuvent être importés directement dans la page de création d’une stack. Les fichiers peuvent être téléchargés dans Rancher ou collés directement dans la zone de texte. Une fois que vous cliquez sur le bouton Créer, la pile est formée avec les services associés. Les services du fichier docker-compose.yml seront seulement créés, mais pas démarrés. Vous devrez les démarrer individuellement.

Ajouter des services

Maintenant que la “stack” est prête, il va falloir installer les deux services mentionnés au début de l’article, pour cela je vais aller chercher les images dockers officielles :

Vous trouverez toutes les informations nécessaires au lancement des images dans leur dépôt docker hub respectif. Néanmoins, je vous montrerais les paramètres minimum à passer au démarrage des services pour que ces derniers fonctionnent correctement.

Quel service démarrer en premier ?

WordPress est un CMS qui a plusieurs pré-requis, il a notamment besoin d’une base de données MySQL pour fonctionner. Il faudra donc démarrer la base de données en premier.

Si vous regardez de plus prêt les recommandations des images WordPress et MySQL vous vous rendrez compte qu’il va vous falloir créer une database, un utilisateur et un mot de passe dédié à wordpress sur la base de données MySQL. Pour cela vous devrez passer des variables à Rancher comme vous le feriez avec Docker.

Démarrer MySQL

Vous aurez donc besoin de la commande docker suivante pour lancer votre base de données dans un conteneur nommé “mysql-wordpress” :
docker run -d -e MYSQL_DATABASE=db-wordpress -e MYSQL_USER=user-wordpress -e MYSQL_PASSWORD=myPassword01 -e MYSQL_ROOT_PASSWORD=myRootPassword01 --name mysql-wordpress mysql:5.7

Pour cela vous devez ajouter un premier service à votre nouvelle stack dans Rancher et remplir les champs correspondant tel qu’indiqué ci-dessous :

1. Cliquer sur le bouton “Add Servcie” (pas sur la flèche ∨ du menu déroulant)

rancher-add-service-menu
Menu pour ajouter des services

2. Remplir le formulaire de création de service tel que mentionné ci-dessous, puis cliquer sur le bouton “Create”. Attention, il y a des problèmes de compatibilité avec mysql:8, je vous conseille de rester sur la version 5.7, plutôt que sur la version 8 ou latest pour le moment.

rancher-add-service-mysql-vue
Ajouter un service mysql

3. Votre service “mysql-worpdress” appariait dans votre stack “MonSiteVitrine”, il doit être en train de démarrer.

rancher-new-service-starting
Le service est en train de démarer

4. Pour obtenir plus de détails vous pouvez cliquer directement sur le nom du service “mysql-worpdress” afin d’arriver sur la page de statuts du service en question.

rancher-service-status-page
Page d’information du service

Félicitations, vous venez de créer votre premier service sous Rancher !

Démarrer WordPress

La commande ci-dessous quant à elle vous permettra de démarrer votre wordpress :
docker run -d -e WORDPRESS_DB_HOST=mysql-wordpress -e WORDPRESS_DB_NAME=db-wordpress -e WORDPRESS_DB_USER=user-wordpress -e WORDPRESS_DB_PASSWORD=myPassword01 --name mon-premier-wordpress wordpress:latest

Pour cela vous devez ajouter un deuxième service à votre stack dans Rancher et remplir les champs correspondant tel qu’indiqué ci-dessous :

1. Cliquer sur le bouton “Add Servcie” (pas sur la flèche ∨ du menu déroulant)

rancher-add-service-menu
Menu d’ajout des services

2. Remplir le formulaire de création de service tel que mentionné ci-dessous, puis cliquer sur le bouton “Create”

rancher-add-service-wordpress-vue
Ajouter un service wordpress

3. Vous avez désormais deux services “mon-premier-wordpress” et “mysql-worpdress” qui apparaissent dans votre stack “MonSiteVitrine”.

rancher-stack-vu-with-two-services
Les service wordpress et mysql

Accéder au wordpress depuis l’extérieur

Maintenant que vos deux services sont fonctionnels il va falloir exposer le service WordPress afin de pouvoir le “mettre en ligne”. Pour cela la meilleure approche est d’instancier un répartiteur de charge (load balancer en anglais). Pour cela vous allez utiliser un service spécifique de Rancher.

1. Cliquer sur la flèche “∨” afin d’afficher le menu déroulant puis cliquer sur le bouton “Add Load Balancer”.

rancher-services-menu
Ajout un service

2. Il faut ensuite remplir le formulaire en exposant le port 80 de notre conteneur vers le port 80 de la machine hôte où va fonctionner le load balancer.

rancher-load-balancer-vue
Ajouter un load balancer sur le port 80 vers le conteneur wordpress

3. Vous pouvez maintenant accéder au wordpress en cliquant sur le port “80/tcp” indiqué dans la description du service load balancer, à condition bien sûr que l’ip du de l’hôte Rancher sur lequel tourne le conteneur load balancer soit accessible depuis votre poste.

rancher-stack-vue
Mon site vitrine est terminé

Et voilà ! Votre wordpress est disponible est accessible depuis l’extérieur le tout en quelques minutes.

wordpress-configuration-init-vue
Page de configuration de wordpress

Pour aller plus loin

Il ne vous reste plus qu’à ajouter de la persistance (via le système de conteneur en sidekick de Rancher) ou de créer un système en haute disponibilité pour tous vos services. Mais ça sera pour un prochain article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *