Aller au contenu principal

Un cluster de développement local (k3d)

Essayez Kuploy sur votre machine avec k3d, une enveloppe légère autour de k3s qui fait tourner un cluster Kubernetes complet dans Docker.

C'est utile pour :

  • essayer des builds d'images Docker avant de déployer en production ;
  • tester de bout en bout le parcours complet de déploiement d'une application par Kuploy ;
  • valider des modifications apportées aux manifestes de kuploy-k8s.

Prérequis​

  • Docker en cours d'exécution
  • k3d installé (brew install k3d, ou curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash)
  • kubectl installé
  • kuploy-k8s cloné en local

Créer le cluster​

k3d cluster create kuploy-dev \
--port "8080:80@loadbalancer" \
--port "8443:443@loadbalancer"

Vous obtenez un cluster à un seul nœud, avec le ServiceLB et le contrôleur d'ingress Traefik intégrés à k3s. Les services LoadBalancer fonctionnent d'emblée : ni metallb ni réglage supplémentaire.

Vérifiez :

kubectl cluster-info
kubectl get nodes

Déployer Kuploy​

Utilisez le script de déploiement habituel de kuploy-k8s sur votre cluster local :

cd kuploy-k8s

# Vérifier les prérequis
python deploy.py preflight

# Déployer
python deploy.py

PostgreSQL, Redis et Kuploy sont déployés dans l'espace de noms kuploy, comme en production.

Charger des images locales​

Pour essayer des images Docker construites localement, plutôt que récupérées depuis un registre :

# Construire l'image
docker build -t ceduth/kuploy:dev -f Dockerfile .

# L'importer dans k3d (sans la pousser dans un registre)
k3d image import ceduth/kuploy:dev -c kuploy-dev

# Faire pointer le déploiement sur votre image locale
kubectl set image deployment/kuploy kuploy=ceduth/kuploy:dev -n kuploy
astuce

k3d copie l'image directement dans le magasin containerd de k3s. Aucun registre local n'est nécessaire.

Accéder à Kuploy​

Une fois déployé, Kuploy est joignable par l'Ingress, sur les ports que vous avez mappés.

Si vous avez configuré un domaine dans l'Ingress — kuploy.local, par exemple :

# À ajouter dans /etc/hosts
echo "127.0.0.1 kuploy.local" | sudo tee -a /etc/hosts

Ouvrez ensuite http://kuploy.local:8080 dans votre navigateur.

Vous pouvez aussi passer par une redirection de port, pour y accéder rapidement sans Ingress :

kubectl port-forward svc/kuploy 3000:3000 -n kuploy
# Ouvrez http://localhost:3000

Tout démonter​

k3d cluster delete kuploy-dev

Cela supprime tout : cluster, conteneurs, volumes. Table rase.

Quelques conseils​

  • Il cohabite avec vos autres clusters. k3d crée son propre contexte kubeconfig (k3d-kuploy-dev). Basculez de l'un à l'autre avec kubectl config use-context k3d-kuploy-dev.
  • Itérez vite. Après une modification de code : docker build → k3d image import → kubectl rollout restart deployment/kuploy -n kuploy.
  • Consommation. k3s est léger : environ 300 Mo de mémoire vive pour le nœud. Vous pouvez le faire tourner à côté de kind ou d'autres clusters sans difficulté.