Test rapide de Kontena Akrobateo, un simple opérateur Kubernetes pour exposer les services LoadBalancer en cluster …

Image for post
Image for post

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.

Image for post
Image for post

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

Image for post
Image for post
Template.json
Image for post
Image for post

et mes instances Ubuntu 18.04 LTS sont actives :

Image for post
Image for post

Je vais utiliser Kontena Pharos pour déployer mon cluster Kubernetes :

Image for post
Image for post

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 :

Image for post
Image for post
cluster.yml

Lancement du déploiement qui se termine correctement :

Image for post
Image for post

Le cluster est actif et prêt à être utilisé :

Image for post
Image for post

Déploiement d’Akrobateo à partir des manifests YAML présents sur le dépôt Github :

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

Test rapide du déploiement du traditionnel démonstrateur FC Agent (avec un service en Load Balancer ici) :

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

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) :

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

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

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store