vCluster Platform : piloter ses labs depuis une UI
La vCluster Platform est l’interface web (gratuite en free tier) qui permet de gérer visuellement tous vos clusters vind : état en temps réel, pause/reprise en un clic, organisation en projets, gestion d’utilisateurs et de rôles — pratique quand chaque apprenant a son cluster.
Elle est aussi requise pour le chapitre 5 (VPN pour attacher des nodes externes).
4.1 Démarrer la Platform
⚠️ Important — ordre des opérations : démarrez la Platform avant de créer vos clusters. Les clusters créés après le démarrage sont enregistrés automatiquement dans l’UI ; ceux créés avant n’y apparaissent pas.
vcluster platform start --docker
Le flag --docker installe la Platform dans un conteneur Docker (au lieu d’un cluster Kubernetes).
En fin d’installation, le terminal affiche :
l’URL d’accès (ex.
https://xxxxxx.loft.host)l’utilisateur
adminet un mot de passe auto-généré → notez-les
⚠️ Piège terminal :
vcluster platform startétablit un port-forwarding et ouvre une session de login — selon le contexte, la commande peut rester au premier plan et « bloquer » votre terminal. Deux parades :# option 1 : désactiver le port-forwarding automatique vcluster platform start --docker --no-port-forwarding # option 2 : désactiver aussi le login automatique (utile en script/CI) vcluster platform start --docker --no-port-forwarding --no-loginVous pourrez toujours vous connecter ensuite via l’URL affichée, ou lancer la commande dans un terminal dédié.
🔒 Sécurité — cette URL
*.loft.hostest PUBLIQUE. Par défaut, la Platform active le loft router : elle ouvre un tunnel sortant (HTTPS/443) vers l’infrastructure publique de Loft (165.232.127.100) et s’y publie sous un sous-domaine aléatoire (ex.w2h0jag.loft.host). Résultat : votre page de login est accessible depuis tout Internet, même si votre machine ne publie aucun port et est derrière un NAT — la seule barrière est le mot de passe admin. Le sous-domaine aléatoire, c’est de l’obscurité, pas de l’isolation.Pour un lab de formation, c’est parfois pratique (les apprenants accèdent sans VPN). Mais si vous voulez rester privé, désactivez le tunnel au démarrage avec le flag dédié :
vcluster platform start --docker --no-tunnelSous le capot, ce flag revient à positionner la variable d’environnement
DISABLE_LOFT_ROUTER=truede la Platform. Si vous passez par un fichier de values Helm (--values), l’équivalent est :# platform-values.yaml env: DISABLE_LOFT_ROUTER: "true"vcluster platform start --docker --values platform-values.yamlDans les deux cas, la Platform n’établit aucun tunnel sortant ; vous y accédez en local, par exemple via un tunnel SSH depuis votre poste :
# 172.17.0.2 = IP du conteneur vcluster-platform sur le bridge Docker de l'hôte ssh -L 8080:172.17.0.2:8080 user@machine-hote # puis ouvrez http://localhost:8080Pour couper en urgence une Platform déjà exposée :
docker stop vcluster-platformferme le tunnel immédiatement (le conteneur a une restart policyno, il ne se rallume pas seul).
4.2 Utiliser l’UI
Ouvrez l’URL dans un navigateur et connectez-vous. Depuis le dashboard vous pouvez :
voir tous vos clusters vind et leur statut en temps réel
les mettre en pause / reprendre en un clic
les organiser en projets (un projet par groupe d’apprenants, par exemple)
créer et inspecter des ressources k8s directement depuis le navigateur
gérer utilisateurs, équipes et RBAC (voire brancher un SSO)
Créez maintenant un cluster : il apparaît automatiquement dans l’UI.
vcluster create lab-ui
4.3 Installation durable via Helm avec un domaine personnalisé
Le mode --docker est parfait pour un poste de formation jetable. Pour une Platform permanente et partagée (une vraie URL en HTTPS, accessible à toute l’équipe), on l’installe plutôt via Helm dans un cluster Kubernetes, avec votre propre domaine — ici vcluster.in.techledger.io — au lieu du tunnel public *.loft.host.
Prérequis
Un cluster Kubernetes joignable (
kubectlconfiguré dessus) — ce peut être un cluster managé, ou même un cluster vind ;un Ingress Controller installé (ex. ingress-nginx) ;
un enregistrement DNS
vcluster.in.techledger.io(type A/CNAME) pointant vers l’IP publique de votre Ingress ;de quoi obtenir un certificat TLS pour ce domaine (cert-manager recommandé).
1. Ajouter le dépôt Helm
helm repo add loft https://charts.loft.sh
helm repo update
2. Fichier de values
# platform-values.yaml
admin:
username: admin
password: change-me-please # sinon un mot de passe est auto-généré
config:
# Votre domaine public : désactive de fait le tunnel *.loft.host
loftHost: vcluster.in.techledger.io
ingress:
enabled: true
host: vcluster.in.techledger.io
# Selon votre Ingress Controller / cert-manager :
# ingressClassName: nginx
# annotations:
# cert-manager.io/cluster-issuer: letsencrypt-prod
# tls:
# - hosts: [vcluster.in.techledger.io]
# secretName: vcluster-platform-tls
env:
# Ceinture + bretelles : coupe explicitement le loft router public
DISABLE_LOFT_ROUTER: "true"
ℹ️ Renseigner
config.loftHost+ingress.hostavec votre domaine suffit à ne plus utiliser le tunnel*.loft.host. On ajouteenv.DISABLE_LOFT_ROUTER: "true"par sécurité, pour garantir qu’aucun tunnel sortant vers l’infra Loft n’est établi.
3. Installer / mettre à jour
helm upgrade vcluster-platform vcluster-platform \
--install \
--repo https://charts.loft.sh/ \
--namespace vcluster-platform \
--create-namespace \
--values platform-values.yaml \
--version 4.10.5
4. Récupérer le mot de passe admin (si auto-généré)
kubectl get secret vcluster-platform-password \
-n vcluster-platform \
-o jsonpath='{.data.password}' | base64 --decode; echo
Ouvrez ensuite https://vcluster.in.techledger.io et connectez-vous. Aucun trafic ne transite par *.loft.host : tout reste sur votre domaine et votre Ingress.
4.4 Arrêter / supprimer la Platform
Quand vous n’en avez plus besoin :
# Installation Docker (§4.1)
vcluster platform destroy --docker
# Installation Helm (§4.3)
helm uninstall vcluster-platform --namespace vcluster-platform
(--docker supprime le conteneur et le volume Docker de la Platform.)
✅ Checkpoint : Platform accessible dans le navigateur, cluster lab-ui visible dans le dashboard.
Commentaires
Aucun commentaire pour le moment.