Rancher Labs vient d’introduire son nouveau projet dénommé Rio. Rio est un MicroPaaS qui peut être superposé sur n’importe quel cluster Kubernetes standard. Composé de quelques ressources personnalisées et d’un outil en ligne de commande pour améliorer l’expérience utilisateur, on peut facilement déployer des services vers Kubernetes et obtenir automatiquement un processus de livraison continue, un service de ReverseDNS, du routage, de la surveillance, de la mise à l’échelle automatique et bien plus encore …
Tout ce qu’il faut pour démarrer, c’est un cluster Kubernetes existant et le Rio CLI :
Je pars au préalable d’un déploiement d’un cluster Kubernetes via AKS-Engine et un Scale Set d’instances basse priorité :
Rappel sur le procédé via ce précédent article par exemple :
Lancement de la construction du cluster Kubernetes :
sur la base de ce template JSON :
Le cluster est alors disponible :
avec mon pool d’instances basse priorité :
Et je récupère Rio CLI depuis son dépôt sur Github :
ou via cette ligne de commande :
$ curl -sfL https://get.rio.io | sh -$ rio install
et lancement de l’installation du MicroPaaS :
Rio dispose d’un maillage de service intégré, alimenté par Istio et Envoy. Le maillage des services fournit toutes les capacités de communication de base pour que les services puissent communiquer entre eux, le trafic entrant et le trafic sortant. Tout le trafic peut être crypté, validé et routé dynamiquement en fonction de la configuration. On voit ici qu’une adresse IP a été attribuée par le service de Load Balancing d’AKS pour Istio Gateway :
Petit test de déploiement d’un service sur la base d’images Docker :
avec l’accès à ces services par un dispositif de ReverseDNS inclus avec Rio. Par défaut, Rio créera un enregistrement DNS pointant vers le cluster Kubernetes. Rio utilise également Let’s Encrypt pour créer un certificat pour le domaine cluster afin que tous les services puissent supporter HTTPS par défaut :
Une interface en mode console est fournie avec Rio pour l’administration :
$ rio ps
$ rio console
$ rio info
Autre test avec le traditionnel démonstrateur FC Agent :
et le démonstrateur est accessible via la route fournie par Rio :
Rio permet la mise en oeuvre de l’Auto Scaling. Mise en oeuvre de l’outil Hey en ligne de commande pour générer de la charge sur le démonstrateur :
Par défaut, Rio activera cette mise à l’échelle automatique des charges de travail. En fonction des Qps et des demandes actives en cours, Rio adaptera automatiquement la charge de travail à l’échelle appropriée …
Pour finir, test du maillage de service. Les services peuvent avoir plusieurs versions déployées en même temps. Le maillage du service peut alors décider du volume de trafic à acheminer vers chaque révision. La commande rio stage mettra en scène une nouvelle révision d’un service existant. Par exemple, ici un scénario pour faire un déploiement canari :
Rio permet de lancer un service sur la base de source hébergée sur un dépôt Git ou même activer un webhook ainsi que d’autres fonctionnalités à explorer …
Par défaut, Rio déploie grafana et kiali pour permettre à l’utilisateur de surveiller toutes les métriques correspondant au maillage des services :
Nul doute que Rancher Labs va continuer à faire évoluer Rio pour disposer probablement d’une alternative à OpenShift notamment …
A suivre !