K3s Kubernetes léger : déploiement rapide de cluster pour homelab et edge
Si vous souhaitez Kubernetes sans surcharge importante de control plane, K3s est l’une des options les plus pragmatiques. Il est compact, rapide à installer et pleinement compatible avec les outils Kubernetes habituels.
Ce guide fournit une base efficace avec un nœud serveur et des workers optionnels, adaptée aux homelabs, petits environnements et usages edge.
Prérequis
- Hôte Linux (Ubuntu, Debian ou RHEL)
- 2 vCPU et 2 à 4 Go de RAM minimum par nœud
- Ports de communication du cluster ouverts
- Hostnames stables et synchronisation de l’heure
1) Installer le premier nœud (server)
curl -sfL https://get.k3s.io | sh -
Contrôlez l’état du service :
sudo systemctl status k3s
sudo k3s kubectl get nodes -o wide
K3s expose kubectl via la commande k3s, ce qui simplifie les premiers tests.
2) Exporter kubeconfig pour un usage standard
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown "$(id -u):$(id -g)" ~/.kube/config
Pour un accès distant, remplacez 127.0.0.1 dans kubeconfig par l’IP ou le DNS du serveur.
3) Joindre un worker (optionnel)
Sur le serveur, récupérez le token :
sudo cat /var/lib/rancher/k3s/server/node-token
Sur le worker :
curl -sfL https://get.k3s.io | \
K3S_URL=https://<SERVER_IP>:6443 \
K3S_TOKEN=<NODE_TOKEN> sh -
Validez les nœuds présents :
sudo k3s kubectl get nodes
4) Déployer une charge de test
sudo k3s kubectl create deployment hello-nginx --image=nginx:stable
sudo k3s kubectl expose deployment hello-nginx --type=ClusterIP --port=80
sudo k3s kubectl get pods,svc -o wide
Pour une validation externe rapide en lab, NodePort ou Ingress font l’affaire.
5) Base d’exploitation
Observabilité minimale
Prévoyez au moins :
- Collecte de métriques
- Accès aux logs conteneurs
- Alertes disque et mémoire
Stratégie d’upgrade
Même si K3s simplifie les mises à jour, appliquez une méthode:
- Sauvegarde/snapshot
- Upgrade d’un nœud non critique
- Validation applicative
- Déploiement progressif sur le reste
Sauvegardes
- Sauvegarder
/etc/rancher/k3s/ - Sauvegarder les snapshots du datastore
- Tester régulièrement la restauration
Problèmes fréquents
Nœuds qui ne rejoignent pas
Vérifiez :
K3S_URLenhttps://- Port 6443 accessible
- Token correctement copié
- Horloges synchronisées
Pods bloqués en Pending
Souvent manque de ressources ou taints :
sudo k3s kubectl describe pod <pod-name>
sudo k3s kubectl describe node <node-name>
DNS interne défaillant
Contrôlez CoreDNS :
sudo k3s kubectl -n kube-system get pods | grep coredns
Conclusion
K3s est idéal pour obtenir les fonctionnalités Kubernetes avec moins de friction opérationnelle. Pour homelab, edge et environnements compacts, il offre un excellent compromis vitesse/fiabilité.
Commencez simple, stabilisez l’exploitation, puis ajoutez ingress, stockage, sécurité et monitoring selon la croissance des charges.