Attacher une VM externe comme node
C’est LA fonctionnalité que ni KinD ni k3d ne proposent : brancher une vraie machine (VM cloud ou autre) comme worker node de votre cluster local, via un VPN Tailscale intégré. Cas d’usage : tester sur une vraie machine, ajouter un node GPU, simuler un cluster hybride.
5.1 Prérequis
La vCluster Platform démarrée (chapitre 4) — le VPN fait partie du free tier
Une VM Linux (Ubuntu 22.04+ recommandé), n’importe où : cloud (EC2, GCE, Scaleway, OVH…), Proxmox, ou autre machine du réseau
accès SSH avec sudo
accès Internet sortant (le VPN traverse les NAT : pas besoin d’IP publique entrante ni d’ouvrir des ports)
2 vCPU / 2 Go RAM minimum
5.2 Créer un cluster avec « private nodes » et VPN
Créez vcluster-hybride.yaml :
privateNodes:
enabled: true
vpn:
enabled: true # VPN node ↔ control plane
nodeToNode:
enabled: true # VPN entre les nodes
Puis :
vcluster create lab-hybride --values vcluster-hybride.yaml
ℹ️ Équivalent en une ligne, sans fichier :
vcluster create lab-hybride \ --set privateNodes.enabled=true \ --set privateNodes.vpn.enabled=true \ --set privateNodes.vpn.nodeToNode.enabled=true
5.3 Générer le token de join
Toujours connecté au cluster lab-hybride (c’est le cas juste après le create) :
vcluster token create
La commande affiche une commande curl complète contenant un token unique, du type :
curl -fsSLk "https://<host-platform>/kubernetes/project/default/virtualcluster/lab-hybride/node/join?token=<token>" | sh -
Copiez-la telle quelle.
5.4 Exécuter le join sur la VM
Connectez-vous à votre VM en SSH, passez root, et collez la commande :
ssh user@ma-vm
sudo su
curl -fsSLk "https://<host-platform>/.../node/join?token=<token>" | sh -
Le script installe automatiquement les binaires Kubernetes (kubelet, containerd), configure le VPN Tailscale et joint le cluster. Comptez 1 à 2 minutes.
💡 Si le pipe direct dans
shéchoue (proxy, politique de sécurité), téléchargez d’abord le script puis exécutez-le :curl -fsSLk "https://.../node/join?token=<token>" -o join.sh chmod +x join.sh sudo ./join.sh
5.5 Vérifier
De retour sur votre machine locale :
kubectl get nodes -o wide
La VM apparaît comme node Ready, avec son IP VPN. Vous pouvez maintenant y scheduler des pods comme sur n’importe quel node (nodeSelector, labels, taints — cf. chapitre 3).
5.6 Nettoyage
kubectl drain <nom-du-node-vm> --ignore-daemonsets
kubectl delete node <nom-du-node-vm>
vcluster delete lab-hybride
Et supprimez ou réinitialisez la VM côté provider.
✅ Checkpoint : une VM distante est Ready dans votre cluster local, un pod y a tourné.
Chapitre 6 — Cheatsheet et pièges à éviter
6.1 Commandes essentielles
Action | Commande |
|---|---|
Activer vind |
|
Créer un cluster |
|
Créer avec config |
|
Lister les clusters |
|
Se (re)connecter |
|
Mettre en pause |
|
Reprendre |
|
Supprimer |
|
Démarrer l’UI |
|
Supprimer l’UI |
|
Token de join (node externe) |
|
6.2 ⚠️ Les commandes qui « bloquent » le terminal
Certaines commandes restent au premier plan et donnent l’impression que le terminal est figé. C’est normal — mais mieux vaut le savoir :
Commande | Comportement | Parade |
|---|---|---|
| Port-forwarding + login interactif au premier plan |
|
| Bloque tant que le tunnel est ouvert | Second terminal, ou |
| Bloque en attente d’événements |
|
| Suit les logs en continu |
|
6.3 Bonnes pratiques pour des labs de formation
Un cluster par exercice : la création est si rapide qu’il vaut mieux repartir propre (
vcluster delete+vcluster create) que déboguer un cluster pollué.vcluster pauseentre deux sessions : l’état est conservé, la RAM est libérée.Versionnez vos
vcluster.yaml: un fichier par topologie de lab (single-node, multi-node, hybride) dans le repo de la formation.Platform d’abord : si vous voulez l’UI, démarrez la Platform avant de créer les clusters.
Nommez explicitement :
lab-1,lab-multinode,lab-hybride… vos apprenants s’y retrouveront dansvcluster list.
Conclusion
Avec vind, monter un lab Kubernetes devient trivial : un cluster jetable en 30 secondes, du multi-node sans VM, un LoadBalancer qui marche vraiment, une pause qui libère les ressources, et même de vraies machines attachables au cluster local. Pour de la formation, c’est aujourd’hui l’outil le plus complet de la famille « Kubernetes in Docker ».
Pour aller plus loin
Commentaires
Aucun commentaire pour le moment.