Docker Swarm par l’exemple sur le cloud public Openstack de OVH

Après l’exemple précédent de mise en place d’un cluster docker swarm avec Virtualbox, je vous propose de reprendre la même web stack pour l’implémenter sur l’offre cloud public de OVH qui repose sur Openstack. OVH ayant annoncé la mise en service prochaine de 3 nouveaux DataCenter dans le monde, nous aurons bientôt la possibilité de choisir entre 6 Data Centers.

Voici les liens vers toute la série :

Les prérequis à l’utilisation OVH

Pour pouvoir réaliser notre exemple de déploiement docker swarm 1.12 sur OVH il faut ouvrir un compte sur le site OVH.

![openstack docker chez OVH](/images/docker/docker swarm openstack-OVH1.jpg)

Dans la rubrique cloud Openstack OVH il faut créer un utilisateur et noter le mot de passe qui sera utilisé pour que docker-machine puisse créer les serveurs.

![exemple docker swarm avec OVH](/images/docker/docker swarm openstack-OVH2.jpg)

En sélectionnant le petit icon outil à droite de l’écran, vous allez choisir de télécharger le fichier de configuration Openstack. Ce fichier contient des variables qu’il faut placer dans le fichier variable.sh.

![docker cluster scale OVH](/images/docker/docker swarm openstack-OVH3.jpg)

Démarrer des serveurs simples sur l’infra Openstack d’OVH ne coute que quelques centimes par heures ! Lorsque vous arrivez pour la première fois dans l’interface vous n’avez le droit de démarrer qu’une seule instance de serveur sur chacun des 3 Datacenter OVH. J’ai essayé de mettre en place un cluster Docker Swarm sur plusieurs Data Center OVH, mais je me suis heurté à un problème de limitation du nombre d’appels dans leur API Openstack ! Il faut demander dans l’interface, en clickant le bouton “Augmenter mes limites”, la possibilité de démarrer plusieurs instances dans le même DataCenter OVH (curieux). Puis, quelques jours après, nous aurez gracement le droit à 3 VM …

Adaptation de la commande docker-machine à OpenStack

Le principal changement dans notre script d’origine pour Virtualbox réside dans la transformation de la commande de création des serveurs Docker avec la commande docker-machine.

   docker-machine create -d openstack \
      --openstack-flavor-name="vps-ssd-1" \
      --openstack-image-name="Ubuntu 16.04"  \
      --openstack-net-name="Ext-Net" \
      --openstack-ssh-user="ubuntu" \
   leader

Par rapport à l’exemple avec docker swarm sur Virtualbox on change le driver en précisant openstack, puis on liste les caractéristiques de la VM docker-machine comme suit :

  • vps-ssd-1 : virtual private server avec 1 vCPU, 2Go de RAM et 20Go SSD
  • Ubuntu 16.04 : la version de l’OS que l’on souhaite voir déployé
  • Ext-Net : on souhaite avoir une ip sur le réseau externe (ip public Internet)
  • ubuntu : nom de l’utilisateur

Lors de l’exécution du script, vous allez voir apparaitre les VM Openstack au fur et à mesure de l’avancement.

![comment déployer docker swarm sur OVH Openstack](/images/docker/docker swarm openstack-OVH4.jpg)

L’ensemble des sources et l’automatisation de cet exemple de mise en oeuvre d’un cluster de services docker swarm est disponible sur Github.

Le déploiement du cluster docker swarm se déroule comme dans l’exemple avec Virtualbox.

![exemple pratique de déploiement docker sur VPS OVH](/images/docker/openstack-ovh-docker swarm.jpg)

Conclusion sur docker swarm sur OVH Openstack et les prochaines étapes

Lors de l’exécution de la commande docker-machine, j’ai énormément de “timeout”, des erreurs signalant un nombre trop important d’appels à l’API OVH Openstack, qui oblige a stopper le script, a recommancer plusieurs fois. Pas très stable ? Néanmoins, une fois démarré, tout fonctionne très bien.

Voilà pour la démonstration de l’orchestrateur docker swarm avec OVH Openstack. Dans les prochains articles je vais vous proposer de poursuivre nos tests avec :

A suivre …