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

Image for post
Image for post

ancher 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 :

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

accompagné de ce fichier cloud-init :

Image for post
Image for post

Le second Scale Set est alors opérationnel :

Image for post
Image for post

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 :

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

Les groupes de containers sont actifs dans le cluster Mesos :

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
$ 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) :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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) :

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

Installation de la dernière version de Multipass :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post

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 :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Les trois hôtes sont opérationnels :

Image for post
Image for post

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

Image for post
Image for post

Dans Marathon, je relance mes groupes de containers Docker :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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) :

Image for post
Image for post

Traefik me restitue automatiquement des adresses via des domaines Wildcard :

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

ette 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) :

Image for post
Image for post

A suivre ! …

Image for post
Image for post

Above the clouds, the sky is always blue ...

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store