DEV Community

Karim
Karim

Posted on • Originally published at Medium on

Aperçu de “Portainer on Kubernetes BETA” : application avec Rancher K3d, Serveo et Gobetween dans Hetzner Cloud …

Sur le dépôt Github de Portainer, on peut trouver une version Beta destinée à Kubernetes. Test avec le déploiement de deux instances Ubuntu 18.04 LTS avec ce script pour cloud-init dans Hetzner Cloud :

Ces deux instances Ubuntu ont initié un cluster K3s dans des instances Docker vues comme des hôtes via Rancher K3d :

rancher/k3d

Je peux déployer le manifeste YAML de Portainer dans ce cluster k3s imbriqué dans cette instance Ubuntu :

portainer/portainer-k8s

J’ai modifié ce manifeste YAML en configurant le service sur le mode ClusterIP en lieu et place du mode Load Balancer :

Dans K3d il est possible d’utiliser Traefik comme Ingress Controller (en effet au moment de la création du cluster K3d, j’ai publié le port TCP 80 sur l’instance) :

Ce qui me permet d’accéder au portail de Portainer sur le port TCP 80 de l’instance Ubuntu portant ce cluster K3d :

Je connecte Portainer à ce cluster K3d :

Je me connecte ensuite à la seconde instance Ubuntu qui porte également un cluster K3d :

et je récupère l’Agent Portainer qui me permettra de connecter ce cluster K3d au serveur Portainer sur la première instance via ce manifeste YAML :

Là j’ai remplacé le mode Load Balancer par le mode NodePort pour la partie service de ce manifeste YAML.

Je vais utiliser Gobetween, une alternative Open Source à HAProxy ou Nginx pour lancer un Load Balancer local pour émettre l’Agent Portainer sur le port TCP 9001 :

yyyar/gobetween

Gobetween peut s’installer via Snap ou un binaire depuis Github :

J’utilise un fichier de configuration TOML pour Gobetween :

Et je lance ce Load Balancer avec Gobetween :

Dès lors il est possible de lier ce cluster K3d dans le portail Portainer :

qui apparaît dans le dashboard de Portainer avec ces détails :

Je peux lancer une nouvelle application dans ce cluster avec le sempiternel démonstrateur FC :

qui se déploie en mode NodePort sur le port TCP 31111 :

Je vais lancer une nouvelle instance Ubuntu qui va me permettre de lancer Serveo en mode local :

En ayant récupéré le binaire depuis le site web de Serveo :

Je lance localement dans cette instance Serveo avec ce domaine Wildcard :

Avec un autre Load Balancer Open Source nommé Balance, je lance un endpoint local sur le port TCP 31111 qui pointe sur ce même port sur les IP des containers Docker faisant office d’hôtes dans le cluster K3d de la seconde instance Ubuntu :

Balance :: Balance by Inlab Networks

Dans l’instance portant Serveo, je me connecte en SSH localement à ce dernier pour obtenir un nouvel endpoint et exposer publiquement mon démonstrateur FC sur le port TCP 80 :

qui utilise ce domaine Wildcard :

À suivre !

Top comments (0)