Pour cette expérience, je vais lancer le déploiement de plusieurs clusters Kubernetes dans plusieurs régions du monde via Azure VMSS et une instance Rancher Server dans Outscale selon ce schéma :
Un exemple d’une série de scripts pour lancer la création de Scale Sets sans Azure dans ces différentes régions :
accompagné du fichier cloud-init :
Les différents Scale Sets sont disponibles :
J’ai lancé auparavant une instance dans Outscale avec un serveur Rancher qui va me servir au déploiement des différents clusters Kubernetes au travers de ces Scale Sets dans Azure :
accompagné de son volume pour le runtime Docker :
Je configure le serveur Rancher :
pour créer les quatre clusters Kubernetes :
Pour simplifier l’accès à ces instances, ces dernières se sont jointes à un réseau privé dans ZeroTier :
Conjointement, j’ai lancé ces quatres séries de scripts pour l’installation de cs clusters sur les Scale Sets dans Azure :
Mes quatre clusters sont actifs :
avec le monitoring intégré depuis le tableau de bord du serveur Rancher dans Outscale :
Dans Outscale, j’en profite pour déployer un Docker Registry Privé avec Harbor :
L’installation de ce Docker Registry passe par la récupération d’un binaire d’installation dans Github :
suivi de son installation via le fichier de configuration harbor.yml
$ tar xvf harbor-online-installer-<version>.tgz$ sudo ./install.sh --with-clair
Dans ce Docker Registry, j’ai publié l’image Docker d’un Chatbot pour FranceConnect Agent sous la forme d’un Progressive Web App avec ce simple Dockerfile :
dont on on trouve le fonctionnement détaillé ici :
et en démo ici :
Il est présent dans un dépôt scanné avec Clair :
Je n’ai plus qu’à déclarer ce Docker Registry dans tous les clusters déployés avec Rancher :
Je procède au déploiement du chatbot dans chacun des clusters via ce Docker Registry privé :
Déploiement d’un chat sous la forme d’un Progressive Web App dans le premier cluster :
Je dois m’assurer d’une liaison SSL pour l’accès à ce chatbot sous la forme d’un Progressive Web App et il est possible d’utiliser Cert Manager (préalablement déployé depuis le catalogue de charts) dans Rancher en lien avec l’Ingress Controller :
Ce dernier est accessible :
avec ces performances correctes :
Le tout est observable depuis Grafana via le serveur Rancher :
Mais pour simplifier cet accès en HTTPS , je peux utiliser Azure functions Proxies :
Je créé donc ces fonctions pour chacun des chatbots déployés dans les différents clusters :
J’ai donc un seul Endpoint global qui pointe vers ces différents chatbots :
selon ce principe :
et ces métriques à chaque exécution ce ces fonctions :
A suivre !