Application multicluster via Rancher 2.2, ZeroTier et Multipass …

Image for post
Image for post

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 :

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

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 :

Image for post
Image for post

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 :

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

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.

Image for post
Image for post

J’installe Multipass via Snap :

sudo snap install multipass --edge --classic
Image for post
Image for post
Image for post
Image for post

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

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

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
Image for post
Image for post
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
Image for post
Image for post

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 :

Image for post
Image for post

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

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

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

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

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

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

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
Image for post
Image for post

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

Image for post
Image for post

Le second cluster Kubernetes est actif :

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

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

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

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

Image for post
Image for post

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.

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 voir que cela reprend des éléments de Weave Scope :

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

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

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

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

Image for post
Image for post

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

Image for post
Image for post

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
Image for post
Image for post

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

Image for post
Image for post

et je lance Caddy :

Image for post
Image for post

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

Image for post
Image for post

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

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

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 !

Image for post
Image for post

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