Application multicluster via Rancher 2.2, ZeroTier et Multipass …

Karim
7 min readFeb 24, 2019

--

Je vais profiter de la sortie de la preview de Rancher 2.2 pour introduire une caractéristique liée aux opérations multi-clusters.

Rancher 2.2 déploie et met à jour simultanément des copies de la même application sur un nombre quelconque de clusters Kubernetes. Je pars donc pour ce test du scénario suivant :

Je suis parti de deux instances de type E4_v3 qui comme précédemment, me permettent de profiter de la virtualisation imbriquée sous Ubuntu 18.10 :

Je profite également des avancées du projet Multipass de Canonical qui permet d’orchestrer via KVM la création, la gestion et la maintenance de machines virtuelles avec des images Ubuntu :

Mais au préalable, je vais avoir besoin de redimensionner la taille du disque système initial fourni par défaut à 30 Go dans cette instance Azure de type E4_v3 via les lignes de commande :

J’ai donc un disque unique de 200 Go qui va me permettre de supporter l’installation en couche via Snap de ces machines virtuelles grâce à Multipass.

J’installe Multipass via Snap :

sudo snap install multipass --edge --classic

Et je lance mes VMs dans la première instance Azure :

Et je peux installer un serveur Rancher dans une première VM (par le biais de l’installation d’un moteur Docker) qui sera accessible dans ZeroTier VPN via une adresse spécifique. On peut se connecter à la VM avec cette commande :

multipass shell rancher
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

et sur la base des 3 autres VMs de Multipass et de Rancher, je peux initier la création d’un premier cluster Kubernetes très simplement :

Je me connecte un à un sur ces VMs et j’y installe le client ZeroTier VPN ainsi que l’agent Rancher :

Au démarrage du cluster Kubernetes, le tout a une consommation de ressources systèmes raisonnables :

Je refais la même chose dans la seconde instance azure de type E4_v3 :

et je lance la création cette fois-çi d’une VM avec Rancher 2.2 :

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.2.0-rc2

et d’un nouveau cluster Kubernetes mais en utilisant le serveur Rancher de la première instance :

Le second cluster Kubernetes est actif :

et je peux importer ces deux clusters Kubernetes dans le serveur Rancher 2.2 située dans la deuxième instance Azure :

et je peux utiliser la nouvelle section Multi-Cluster Apps présente dans le dashboard du serveur Rancher 2.2 :

Je peux lancer l’installation d’OpenEBS dans ces deux clusters et profiter de la supervision de volumes iSCSI via MayaOnline :

MayaOnline fournit une vue graphique pour la gestion des charges de travail dynamiques dans Kubernetes. Les développeurs utilisant le stockage OpenEBS et les volumes locaux persistants de Kubernetes peuvent invoquer les tests de chaos Litmus pour valider et durcir leurs applications.

On peut voir que cela reprend des éléments de Weave Scope :

Mais je lance ici comme d’habitude le démonstrateur FranceConnect Particulier sur les deux clusters :

via NodePort, j’ai accès au démonstrateur sur un port spécifique en TCP 32445 :

Pour permettre un accès extérieur en dehors de ce réseau VPN, je lance une autre instance ubuntu dans Outscale :

et j’utilise Caddy (un serveur Web HTTP/2 polyvalent qui utilise HTTPS par défaut) en mode Reverse Proxy pour pouvoir bénéficier d’un accès externe au démonstrateur FranceConnect :

CADDY_TELEMETRY=off curl https://getcaddy.com | bash -s personal

J’utilise cette configuration inscrite dans un fichier nommé Caddyfile :

et je lance Caddy :

Avec l’accès en Round-robin au démonstrateur :

L’ancienne solution de monitoring Ruxit présente dans Dynatrace permet de surveiller le process :

En utilisant Rancher, les opérateurs IT peuvent pointer vers leurs fournisseurs de cloud computing (AWS, GCP, Azure, etc.) ou leur datacenter et créer un cluster Kubernetes en quelques clics seulement. La prise en charge des applications multi-clusters depuis la version 2.2 (qui va sortir très bientôt pusque nous sommes à la date de cet article en RC2) permet le suivi de plusieurs projets au sein de plusieurs clusters mais également de plusieurs projets dans un même cluster …

A suivre !

--

--

Karim
Karim

Written by Karim

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

No responses yet