Aller au contenu principal
Sommaire de la formation

vCluster Platform : piloter ses labs depuis une UI

coolibra11 vues

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 admin et 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-login

Vous pourrez toujours vous connecter ensuite via l’URL affichée, ou lancer la commande dans un terminal dédié.

🔒 Sécurité — cette URL *.loft.host est 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-tunnel

Sous le capot, ce flag revient à positionner la variable d’environnement DISABLE_LOFT_ROUTER=true de 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.yaml

Dans 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:8080

Pour couper en urgence une Platform déjà exposée : docker stop vcluster-platform ferme le tunnel immédiatement (le conteneur a une restart policy no, 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 (kubectl configuré 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.host avec votre domaine suffit à ne plus utiliser le tunnel *.loft.host. On ajoute env.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

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.