Après un article sur l'installation de Jitsi à l'aide de Docker et Traefik, je me suis dis qu'il était nécessaire de réaliser le même projet mais cette fois-ci avec un environnement Kubernetes.

De mon côté, je vais réaliser cette installation avec K3S. C'est une version allégée de k8S qui est proposée par Rancher.  D'une taille de 40 Mo, elle n'a besoin que de 512Mo de RAM pour  s'exécuter. Le souhait est clairement affiché sur le site de K3S,  décliner Kubernetes pour les équipements légers : IoT, edge server et Raspberry PI.

C'est parfait pour mener à bien des projets de façon rapide et sans prise de tête sur l'installation. Je vais déployer Jitsi et Traefik 2 ( dans sa version 2.2 même ... ) avec son contrôleur Ingress ( ce n'est pas obligatoire si vous possédez déjà votre propre installation ).

Pré-requis

Pour réaliser ce tutoriel, il est nécessaire d'avoir un environnement Kubernetes sous la main. Pour installer K3S sur un serveur dédié ou VPS, rien de plus simple :

curl -sfL https://get.k3s.io | sh -s - --no-deploy=traefik

Je ne vais pas déployer traefik avec l'installation de K3S, nous allons le faire juste après.

Et... c'est tout !

🚀 Quick start 🚀

Afin de démarrer rapidement Jitsi Meet sur une machine ou Kubernetes est déjà présent, je vous invite à suivre ces étapes :

  • Récupérez le dépôt git avec les fichiers pour le déploiement :
git clone https://github.com/lfache/kubernetes

Dans un premier temps, déployons Traefik et son contrôleur Ingress. Si vous possédez déjà un contrôleur Ingress, je vous invite à passer cette étape !

  • Modifiez le fichier traefik/configmap.yaml afin de renseigner votre adresse email :
          email: "foo.bar@mydomain.com"

Je vous invite à changer le chemin de stockage des certificats let's encrypt présent dans le fichier traefik/deployment.yaml , ligne 49 :

             path: /tmp/letsencrypt

Vous pouvez ensuite appliquer la configuration :

kubectl apply -f traefik/

Nous pouvons ensuite déployer Jitsi, il faut tout d'abord créer un namespace dédié à Jitsi :

kubectl create namespace jitsi

Ensuite ajoutez un volume secret pour les mots de passe, remplacez XXX par des chaînes de caractères générées aléatoirement :

kubectl create secret generic jitsi-config --namespace jitsi --from-literal=JICOFO_COMPONENT_SECRET=XXX --from-literal=JICOFO_AUTH_PASSWORD=XXX --from-literal=JVB_AUTH_PASSWORD=XXX

Dans le fichier jitsi\ingressroute.yaml , modifiez la route avec votre nom de domaine :

  - match: Host(`jitsi.mydomain.com`)

Vous pouvez ensuite lancer Jitsi !

kubectl apply -f jitsi/

Patientez quelques instants, et votre application devrait être prête à l'adresse renseignez préalablement : https://jitsi.mydomain.com par exemple.


Il s'agit d'un article relativement court, car je n'ai pas souhaité reprendre et copier/coller les éléments du premier article à ce sujet qui réalisait cette intégration avec Docker.

Je vous invite à le consulter si vous souhaitez en apprendre plus sur Jitsi :

Jitsi, Docker et Traefik !
L’installation d’un service de visioconférence peut sembler être une tâche complexe. Et pourtant grâce à nos outils de conteneurisation, cette installation peut se réaliser en quelques minutes. Vos données seront ainsi à l’abri des regards indiscrets !

En tout cas nous avons pu déployer au cours de cet article, Jitsi et Traefik 2 en quelques minutes. Et si vous utilisez comme moi K3S, cette installation peut se réaliser en quelques minutes !

En tout cas  n'hésitez pas à m'apporter des remarques ou des commentaires sur Twitter ! C'est toujours un plaisir d'avoir des retours ! 😇