Cloudflare Argo Tunnel accessible gratuitement aux développeurs : mise en oeuvre avec k3s …

Image for post
Image for post

Je pars pour cette expérience d’un Scale Set dans Azure avec une instance Ubuntu 18.04 LTS de type Ev3 qui autorise la virtualisation imbriquée :

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

et je vais déployer DevStack via ce fichier de paramètres local.conf :

et ces étapes :

Le cluster OpenStack est accessible depuis cette instance Azure dans ce Scale Set avec l’adresse IP publique :

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

Après import d’une image Ubuntu dans Glance :

Je lance 4 instances :

Image for post
Image for post

à l’aide de ce fichier cloud-init simple :

et je peux créer mon petit cluster K8S avec K3S :

avec la particularité d’utiliser Docker en lieu et place de Containerd et sans agent ni Traefik sur le noeud maître :

Image for post
Image for post

Je raccorde deux noeuds worker à ce cluster :

Image for post
Image for post

Le cluster est disponible avec ces noeuds :

Image for post
Image for post

Je lance une instance avec Rancher Server et j’importe ce nouveau cluster :

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

Je lance le désormais célèbre démonstrateur FC avec Rancher avec NodePort :

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

Ceci émet sur port TCP 32302 sur tous les noeuds du Cluster. Je lance alors un Load Balancer avec Octavia :

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

J’ai donc une Floating IP qui pointe vers ce pool de noeuds du cluster K3S sur le port 80. Je vais utiliser Cloudflare Argo Tunnel pour exposer publiquement le démonstrateur FC. En effet, Cloudflare a rendu accessible sa solution de tunneling pour les développeurs :

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

J’obtiens un lien URL qui me permet d’accéder publiquement au démonstrateur FC :

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

Par le biais du stockage objet avec Swift, je peux avoir accès publiquement à divers fichiers comme une vidéo :

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

Pour finir, toujours en test, je peux lancer un petit clone de Youtube open source sans prétention via cette image Docker :

Toujours via Argo Tunnel, je peux le rendre accessible publiquement :

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

Il est possible d’utiliser Argo tunnel comme Ingress Controller dans un cluster Kubernetes (mais avec abonnement) :

et ce type de définition pour le manifest :

Si je ne veux pas dépendre d’Argo Tunnel, je peux opter pour les nombreuses alternatives comme par exemple Serveo qui propose une implémentation on-premise :

https://cdn-images-1.medium.com/max/1200/1*vmmanTM6K7ftqCiHwVXwxg.png
Image for post
Image for post
Image for post
Image for post

Je pars d’une micro instance dans Outscale avec cette variante :

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

J’ai lancé le serveur Serveo sur un domaine Wild Card pour l’exemple …

Image for post
Image for post

Depuis mon instance sur le Scale Set, je peux lancer un tunnel persistant via Autossh vers le serveur Serveo depuis le load Balancer HAProxy généré précédemment avec Octavia :

J’accède alors au démonstrateur via ce Tunnel et ce domaine Wild Card DNS (via sslip.io) :

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

Tout ceci peut être très utile pour la réalisation d’environnement de test par exemple …

A suivre !

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