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, oucurl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash) kubectlinstallé- 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
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 aveckubectl 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é.