Déploiement7 min de lecture

K3s : Kubernetes léger sur votre VPS

Kubernetes est devenu la référence pour orchestrer des conteneurs, mais son installation standard demande plusieurs Go de RAM et une configuration complexe. K3s, la distribution légère certifiée CNCF par Rancher/SUSE, change la donne : un binaire de 60 Mo suffit pour faire tourner un cluster fonctionnel sur un VPS avec 2 Go de RAM. Ce guide vous accompagne pas à pas, de l'installation à votre première app exposée en HTTPS via Traefik.

Pourquoi choisir K3s plutôt que Kubernetes complet sur un VPS

Kubernetes standard embarque plusieurs composants lourds : etcd, kube-apiserver, kube-controller-manager et kube-scheduler tournent en parallèle et consomment facilement 2 à 4 Go de RAM au démarrage, sans compter vos applications. Sur un VPS de 2 Go, il ne reste pratiquement rien pour les charges de travail réelles. K3s résout ce problème en regroupant tous les composants du control plane dans un seul binaire, en remplaçant etcd par SQLite pour les petits clusters, et en supprimant les fonctionnalités rarement utilisées. Le résultat : un cluster Kubernetes pleinement certifié CNCF, compatible kubectl et helm, qui s'installe en moins de deux minutes et consomme environ 512 Mo pour un nœud agent, et autour de 1 Go pour un nœud serveur.

Les avantages concrets de K3s

  • **Binaire unique de 60 Mo** incluant le runtime containerd, CoreDNS et le gestionnaire de stockage local, sans dépendances système supplémentaires.
  • **Traefik intégré** comme ingress controller par défaut, prêt à terminer le TLS sans configuration supplémentaire.
  • **Compatibilité native** avec kubectl et helm dès la fin de l'installation, sans adaptation.
  • **Mise à jour simplifiée** : remplacer le binaire et redémarrer le service suffit dans la majorité des cas.
  • **Certification CNCF v1.32** garantissant la conformité avec l'API Kubernetes standard.

Prérequis avant de commencer

Pour suivre ce guide, il vous faut un VPS avec au minimum 2 Go de RAM et 1 vCPU sous Ubuntu 22.04 ou Debian 12. Le port 6443 doit être ouvert dans votre pare-feu pour que kubectl puisse communiquer avec l'API du cluster depuis votre machine locale. Si vous souhaitez exposer des services en HTTPS, préparez un nom de domaine pointant vers l'IP de votre VPS, par exemple votre-domaine.com. Une connexion SSH avec les droits root ou sudo complète la liste.

De l'installation à votre première app HTTPS

01

Provisionner le VPS et ouvrir les ports nécessaires

Connectez-vous en SSH à votre VPS, puis autorisez les ports 80, 443 et 6443 dans votre pare-feu. Sur Ubuntu avec ufw : ufw allow 80/tcp, ufw allow 443/tcp, ufw allow 6443/tcp. Assurez-vous que le système est à jour avec apt update && apt upgrade -y avant d'aller plus loin.

02

Installer K3s en une commande

Exécutez le script officiel : curl -sfL https://get.k3s.io | sh -. Le script télécharge le binaire, installe un service systemd nommé k3s et démarre le control plane. À la fin de l'installation, vérifiez l'état du service avec systemctl status k3s. Le nœud est prêt lorsque son statut passe à Ready.

03

Configurer kubectl en local

Sur votre machine locale, copiez le fichier kubeconfig depuis votre VPS : scp [email protected]:/etc/rancher/k3s/k3s.yaml ~/.kube/config. Remplacez ensuite 127.0.0.1 par l'IP publique de votre VPS dans ce fichier. Testez la connexion avec kubectl get nodes : vous devez voir votre nœud unique en statut Ready.

04

Déployer une application exemple

Créez un fichier app.yaml contenant un Deployment et un Service de type ClusterIP exposant votre application sur le port 80. Appliquez-le avec kubectl apply -f app.yaml, puis vérifiez que le pod démarre avec kubectl get pods.

05

Configurer Traefik pour l'ingress HTTPS

K3s inclut Traefik comme IngressController. Créez un objet Ingress pointant vers le Service de l'étape précédente avec l'annotation kubernetes.io/ingress.class: traefik et votre hôte votre-domaine.com. Appliquez avec kubectl apply -f ingress.yaml et vérifiez l'accès HTTPS dans votre navigateur.

En production, désactivez l'utilisation du token par défaut stocké dans /var/lib/rancher/k3s/server/node-token pour les connexions non supervisées. Utilisez k3s token pour générer des tokens à durée de vie limitée lors de l'ajout de nœuds workers. Activez également les audit logs Kubernetes en passant --kube-apiserver-arg=audit-log-path=/var/log/k3s-audit.log au démarrage du service.

K3s comme passerelle vers Kubernetes complet

K3s occupe une place logique entre Docker Compose, qui convient aux applications simples sur un seul hôte, et un cluster Kubernetes complet qui demande une infrastructure dédiée. Il vous permet d'acquérir les réflexes Kubernetes — Deployments, Services, Ingress, ConfigMaps, secrets — sur un environnement de taille réelle, sans les contraintes d'un cluster multi-nœuds. Lorsque votre trafic ou votre équipe grandira, la migration vers un cluster upstream sera directe : les manifestes YAML et les charts helm que vous aurez écrits fonctionneront sans modification. Pour aller plus loin dans la configuration de Traefik avec K3s, consultez notre guide sur le déploiement avec Traefik.

Un VPS prêt pour K3s

Nos VPS Cloud sont livrés avec Ubuntu 22.04 ou Debian 12, une IP dédiée et un accès root immédiat. De quoi lancer votre premier cluster K3s en quelques minutes.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en français, anglais et arabe.