Rancher Server avec Apache Mesos, Marathon et Traefik dans Azure …
Tags: traefik, mesos, rancher, azure
Published: 2019-08-24 17:35:48

---
title: Rancher Server avec Apache Mesos, Marathon et Traefik dans Azure …
published: true
tags: traefik,mesos,rancher,azure
canonical_url: https://medium.com/@abenahmed1/rancher-server-avec-apache-mesos-marathon-et-traefik-dans-azure-d803333e65a0
---

### Rancher Server avec Apache Mesos, Marathon et Traefik dans Azure …

![](https://cdn-images-1.medium.com/max/1024/1*rY1zX-zrYTG1YoFA0c2wqQ.jpeg)

Rancher Server 1.6 paraît déprécié néanmoins il permet le déploiement rapide d’un orchestrateur de containers Docker avec Apache Mesos :

[Mesos in Rancher](https://rancher.com/docs/rancher/v1.6/en/mesos/)

Je pars du déploiement d’un premier Scale Set dans Azure qui va porter le serveur Rancher 1.6 :

![](https://cdn-images-1.medium.com/max/1024/1*woBs1UI0NbnKzmNZ5zXPEA.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*iqHMBX1hRn--XJ2j_t-IDQ.png)

Le serveur Rancher émet via une adresse IP fournie par ZeroTier :

![](https://cdn-images-1.medium.com/max/1024/1*Acgt_18ZaZSd4uBIj3hS9A.jpeg)

On configure préalablement son moyen d’authentification (ici local dans cet exemple) avec le serveur Rancher.

![](https://cdn-images-1.medium.com/max/1024/1*vTZ2euNz1BFO2GKpcc_Aaw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*KO9CItt-PMIQaStYH67BZA.jpeg)

Puis il faut configurer un nouvel environnement avec Apache Mesos (en lieu et place de l’environnement Rancher Cattle par défaut) :

![](https://cdn-images-1.medium.com/max/1024/1*GmOdMsFPJ8jZj0Zm5Wjv5Q.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*4zc1dLNgPpn9sgE20pAzBA.jpeg)

> J’obtiens le script nécessaire au déploiement des hôtes du cluster Mesos via Rancher Agent. Après la création d’un environnement Mesos, les services d’infrastructure ne seront pas lancés tant que l’on n’aura pas ajouté au moins un hôte à l’environnement. Il faudra en effet l’ajout d’au moins 3 hôtes. Le processus d’ajout d’hôtes est le même pour tous les types d’orchestration de containers Docker. Une fois le premier hôte ajouté, Rancher Server commencera automatiquement le déploiement des services d’infrastructure incluant les services Mesos (Mesos-master, Mesos-slave et Zookeeper). On peut visualiser la progression du déploiement via le tableau de bord fourni par le serveur Rancher :

![](https://cdn-images-1.medium.com/max/1024/1*gUJwoCQKgNpelelUHt5jzA.jpeg)

Je crée donc un nouveau Scale Set dans Azure composé de 3 instances :

![](https://cdn-images-1.medium.com/max/1024/1*L1FDX8CQfQx3FylRmxS_-A.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*UenGeE-GPudcGCl0L8M7ug.jpeg)

accompagné de ce fichier _cloud-init_ :

![](https://cdn-images-1.medium.com/max/1024/1*M2OyKbz3mzLkWfMiHoEnFg.png)

Le second Scale Set est alors opérationnel :

![](https://cdn-images-1.medium.com/max/1024/1*4nrGkChWCA7YVNeULWEyxQ.jpeg)

J’utilise ZeroTier pour m’affranchir de l’utilisation du Load Balancer fourni dans le Scale Set avec ces instances ayant par défaut une adresse IP privée :

![](https://cdn-images-1.medium.com/max/1024/1*Ft1d1nukANDIyJ6XugHnmA.jpeg)

La configuration des hôtes du cluster est réalisé à partir du déploiement de Rancher Agent :

![](https://cdn-images-1.medium.com/max/1024/1*A7ikZYTB-4xWab_gKNHYew.jpeg)

Les trois hôtes apparaissent dans le tableau de bord de l’environnement Mesos :

![](https://cdn-images-1.medium.com/max/951/1*5_nqxZ-mDaxcLu_Br4iOJg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*JONv8_H0fy3GW4cBT9-TQg.jpeg)

ainsi que l’état des stacks d’infrastructure :

![](https://cdn-images-1.medium.com/max/1024/1*C4HHA79MHXG3_WmTKhVmow.jpeg)

Je peux alors déployer Marathon (pour notamment l’exécution des containers Docker) via le marketplace présent dans le serveur Rancher :

![](https://cdn-images-1.medium.com/max/1024/1*BhfCbJHZ10VF0gwQFwtNpw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*VvzHdNwl1EpmlOpOZ6mxWA.jpeg)

Il apparaît alors dans les stacks de l’environnement Mesos :

![](https://cdn-images-1.medium.com/max/1024/1*57tNjRvp9ql1YSODdrpnPQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*SZDmk5xV0J7mp8RORpIQBA.jpeg)

Toujours via ZeroTier, je peux accéder à Marathon. Je lance plusieurs groupes de containers Docker via des paramêtres JSON de ce type :

![](https://cdn-images-1.medium.com/max/1024/1*3Bie_Vg8-1U14Rb4L5BU7w.png)

![](https://cdn-images-1.medium.com/max/972/1*4L1gKN94Ym1d4AesOIVnEQ.png)

Les groupes de containers sont actifs dans le cluster Mesos :

![](https://cdn-images-1.medium.com/max/1024/1*JPq5PWZAnWeKlHS1lC5bhw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*oS5l6mCCmd4A93MGXUAxCQ.jpeg)

Les containers sont visualisables dans le tableau de bord du serveur Rancher :

![](https://cdn-images-1.medium.com/max/1024/1*AAjhdxAXakRrAHFAoi5V4w.jpeg)

Une interface Web est également présente pour gérer son cluster Mesos :

![](https://cdn-images-1.medium.com/max/1024/1*kjDO7oC0ECApjqvvhkjLxg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*h-PYanyzvUZEWesALyZ87g.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*bsyhoHF0RaRqaZvaCKf6xA.jpeg)

Pour pouvoir accéder aux services proposés par ces containers, j’installe un serveur Traefik,

[The Cloud Native Edge Router](https://traefik.io/)

![](https://cdn-images-1.medium.com/max/1024/0*JclxmO-Wb1tMqeyT.png)

en ajoutant une instance (avec une adresse IP publique) dans le Scale Set de Rancher :

![](https://cdn-images-1.medium.com/max/1024/1*-38PtB5fkdj7b8Ma5C3CEQ.jpeg)

et j’utilise ce fichier TOML en configuration de ce dernier :

![](https://cdn-images-1.medium.com/max/1024/1*ZQtmS9pbJF6FxX6pxIfTVw.png)

```
$ nohup sudo traefik --configFile=traefik.toml &
```

Le serveur Traefik avec son tableau de bord est accessible (je me contente ici de la version Camembert 1.12) :

![](https://cdn-images-1.medium.com/max/1024/1*oq_IUBtSKTkyoikbYR3xnw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*kBBgni2VaaSIx8vgjN0oxg.png)

![](https://cdn-images-1.medium.com/max/1024/1*jOoCgzFbUttnUzf5Tvdx_Q.jpeg)

Les adresses fournies automatiquement dans Traefik à l’aide de domaines Wildcard permettent l’accès public aux différents services déployés précédemment à l’aide des containers Docker :

![](https://cdn-images-1.medium.com/max/1024/1*CkvzDENUrqIqw5qJp7vHpg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*azj4RIUdkhhEAZ0ommOIxQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*6Ie14gpnogNqLOFYccTGjw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*UzVIixTBkknOGhVbxYdo0Q.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*Yb0ok_H1mkOU9HyUbHb_kg.png)

![](https://cdn-images-1.medium.com/max/649/1*ceNddV91LRBsNa8ML-MnAg.jpeg)

On peut également recréer ce cluster dans une seule instance. Je commence pour ce nouveau test à lancer un nouveau subnet pour l’utilisation d’Azure Bastion (en preview depuis le mois dernier) :

![](https://cdn-images-1.medium.com/max/1011/1*9K7RFUk2TLg_cR8o45T4ew.jpeg)

[Azure Bastion | Microsoft Azure](https://azure.microsoft.com/fr-fr/services/azure-bastion/)

![](https://cdn-images-1.medium.com/max/1024/1*saX1M7eKdFMnr1sU97XcQg.jpeg)

Il se nomme AzureBastionSubnet. Et je vais lier Azure Bastion à une nouvelle instance Ubuntu :

![](https://cdn-images-1.medium.com/max/1024/1*NS9Teazpb5BWJIbERcmheg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*yy9UnFbqwObS_yKhlh9UkA.jpeg)

J’ai configuré auparavant une augmentation de la taille du disque système de cette instance pour supporter la création de ce nouveau cluster Mesos :

![](https://cdn-images-1.medium.com/max/1024/1*bKhhZSSbcni6rLyvlIg6Ow.jpeg)

Je peux alors me connecter à cette instance directement depuis le portail Azure :

![](https://cdn-images-1.medium.com/max/1024/1*4BBfqf4qBoyRzq_ICc7JWA.jpeg)

avec l’apparition d’une nouvelle page web avec un accès au Shell :

![](https://cdn-images-1.medium.com/max/1024/1*H8VmyyUZ6BHd_mq14jnOGQ.jpeg)

Installation de la dernière version de Multipass :

![](https://cdn-images-1.medium.com/max/1024/1*cZV-Xpu6Dteh6pGJANe_AA.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*vEOoIevhKMk4SS8PHyYqZw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*G0B3Hc0LiuX3OdQZ-Synmg.jpeg)

et création de quatres machines virtuelles qui composeront l’ossature de ce nouveau cluster Mesos (dont le serveur Rancher). Elles sont connectées comme précedemment à ZeroTier :

![](https://cdn-images-1.medium.com/max/1024/1*0Ypzafpz0ucFruHW_j34QA.jpeg)

Après le déploiement du serveur Rancher, je peux lancer le déploiement de Rancher Agent sur les machines virtuelles et constituer mon nouveau pool d’hôtes du cluster Mesos :

![](https://cdn-images-1.medium.com/max/1024/1*u0zcLRjfa5FwqyTerJ1Fcg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*lRGNO24OGQk0yoHwdC4-qg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*TgbQf_2TJ4gtjuZFI2fRKA.jpeg)

Les trois hôtes sont opérationnels :

![](https://cdn-images-1.medium.com/max/1024/1*xEbelfX6QuVp1M96UADiDA.jpeg)

J’ai installé le service Marathon dans le cluster :

![](https://cdn-images-1.medium.com/max/1024/1*kzaTAfuvFl7P8U4muX7l6A.jpeg)

Dans Marathon, je relance mes groupes de containers Docker :

![](https://cdn-images-1.medium.com/max/1024/1*35_Vqmyf2ZsjZArvJxEQhQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*roCY8ONbp9Zo6eY_XdwwCQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*9WvQfQxamrUMck143n3KEg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*12cWlbZ6_0qUOSpumFJRsg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*mZK0d6lRXJKHjQAlJRqaHw.jpeg)

et je redéploie Traefik au sein de l’instance Multipass via ce fichier TOML (identique au précédent et en ayant modifié des adresses IP) :

![](https://cdn-images-1.medium.com/max/1024/1*zS4iQ_nLZR5imRB1kLcptw.png)

Traefik me restitue automatiquement des adresses via des domaines Wildcard :

![](https://cdn-images-1.medium.com/max/1024/1*id-64NikrEvDKl0fewMvYQ.png)

qui me permettent d’accéder aux mêmes services précédents :

![](https://cdn-images-1.medium.com/max/1024/1*mt0vti2JoUJUc9GSyA9tEQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*yiVYT522LTlJwdUgSPqISg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*hmXAt-2SmTO0O1oFxGALZg.jpeg)

Ce cluster Mesos tient donc dans cet exemple dans une seule instance sans trop de consommation :

![](https://cdn-images-1.medium.com/max/1024/1*wv0sZfNN1YvH9rCvx9wMmQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*w6PMOJm7CHtWBeHdY5MB6g.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*bfvdImnBs-s6FsVQUsadbQ.jpeg)

Cette version 1.6 du serveur Rancher sera amenée à disparaître (et peut être avec elle cette méthode simple de déploiement d’un cluster Mesos même si DC/OS a déjà pris la relève depuis longtemps) :

[Rancher Labs Support and Maintenance - Terms of Service](https://rancher.com/support-maintenance-terms/)

![](https://cdn-images-1.medium.com/max/1024/1*S9ZU6cnpJsZwqYLkt2wPYQ.jpeg)

A suivre ! …

![](https://cdn-images-1.medium.com/max/638/0*EFXy_s9iAStxIcsU)