Akrobateo est un service universel très léger de Load Balancing pour Kubernetes mis au point par Kontena. Akrobateo peut fonctionner dans n’importe quel environnement, ce qui le rend adapté à de nombreux cas d’utilisation. Il est implémenté comme un opérateur qui réagit quand il voit le type : Services LoadBalancer dans un cluster.
Akrobateo expose les services LoadBalancer dans le cluster en tant que noeuds hostPorts utilisant DaemonSets.
L’opérateur synchronise naturellement aussi les adresses des services. Dès lors les services de type LoadBalancer se comportent ici à peu près comme les services NodePort. Les Pods proxy node-port utilisent iptables pour faire le transfert de trafic réel.
Une fois que l’on a exposé un service, on peut en toute sécurité, par exemple, pousser les adresses externes des services dans son DNS. Ceci a l’inconvénient qu’un port donné ne peut être exposé que dans un seul service à travers le cluster.
Cet opérateur s’inspire beaucoup du contrôleur K3S servicelb de Rancher : https://github.com/rancher/k3s/blob/master/pkg/servicelb/controller.go
Je pars d’un Scale Set dans Azure avec des instances basses priorités via ces paramêtres pour Azure Resource Manager :et ce template
et mes instances Ubuntu 18.04 LTS sont actives :
Je vais utiliser Kontena Pharos pour déployer mon cluster Kubernetes :
J’utilise ce fichier de paramètres en YAML pour lancer le déploiement du cluster via ce binaire à télécharger sur le dépôt Github de Kontena Pharos :
Lancement du déploiement qui se termine correctement :
Le cluster est actif et prêt à être utilisé :
Déploiement d’Akrobateo à partir des manifests YAML présents sur le dépôt Github :
Test rapide du déploiement du traditionnel démonstrateur FC Agent (avec un service en Load Balancer ici) :
On voit ici qu’en guise d’adresses IP, Akrobateo me retourne les adresses des noeuds Workers ce qui me permet d’accéder au démonstrateur (par le jeu de traduction d’adresse IP locale vers l’adresse IP publique offerte au sein de la plateforme Cloud) :
Un test rapide qui permet de constater qu’Akrobateo peut constituer une alternative très simple à MetalLB pour un environnement de test notamment …
A suivre !
Quelques liens à ce sujet :