Page cover

K3s

K3s est une distribution de Kubernetes conçue pour être légère et simple à installer, ce qui la rend particulièrement adaptée pour les environnements avec des ressources limitées.

Qu'est-ce que K3s ?

K3s est une distribution de Kubernetes allégée développée par Rancher Labs (désormais faisant partie de SUSE). Elle est conçue pour être rapide à installer, ne nécessitant qu'un seul binaire de moins de 100 Mo. K3s supprime les pilotes non essentiels et des fonctionnalités facultatives pour simplifier son installation. Une autre solution aurait été d'installer RKE2 qui est une autre distribution de Kubernetes par Rancher et qui est une évolution de K3s conçue pour etre plus stricts dans les environnements de productions et plus complet.

Préparation du serveur Ubuntu

Notre serveur sera une serveur Ubuntu 24.04 LTS.

Ajouter une ip fixe au serveur:

Appliquer la configuration avec la commande

Nous devons maintenant créer un fichier de configuration qui sert à modifier les paramètres du noyau linux.

  • net.bridge.bridge-nf-call-iptables = 1: Active le filtrage des paquets IP à travers les ponts réseau (bridges) par iptables. Cela permet à iptables de filtrer et de manipuler le trafic des conteneurs gérés par Kubernetes, essentiel pour implémenter des politiques de sécurité au niveau du réseau.

  • net.ipv4.ip_forward = 1: Active le routage IP, permettant au serveur de fonctionner comme un routeur pour transmettre le trafic IP entre les interfaces réseau. C'est crucial pour le fonctionnement des environnements de réseau dans Kubernetes, où différents pods et services peuvent avoir besoin de communiquer à travers diverses interfaces et réseaux.

Si vous faites de l'IPV6 vous pouvez rajouter

net.bridge.bridgr-nf-call-ip6tables = 1

Appliquer votre fichier

Installer les dépendances et packages nécessaires.

Installation de K3s

Nous allons suivre l'installation de base qui se trouve sur le site de documentation K3s

Serveur unique

Voici la ligne de commande pour lancer l'installation.

Cela installation le service K3s qui sera lancé automatiquement au boot, ainsi que les utilitaires comme kubectl, crictl, ctr, k3s-killall.sh et k3s-uninstall.sh

Votre kubeconfig se trouvera dans /etc/rancher/k3s/k3s.yaml

Serveur cluster

Si vous devez ajouter d'autres nœuds comme des agents vous devrez récupérer le token sur votre server master dans ce fichier /var/lib/rancher/k3s/server/node-token

Pour configurer d'autres serveurs vous devrez utiliser cette commande:

Cela définira l'url du cluster ainsi que le token qui sera partager entre tous.

Configuration de base

local-patch directory

Le local-path dans le contexte de Kubernetes, et plus spécifiquement dans des distributions comme K3s, se réfère à un type de provisionneur de stockage persistant. Ce provisionneur permet aux clusters Kubernetes de facilement utiliser le stockage disponible sur les nœuds locaux pour stocker des données de manière persistante, sans nécessiter des solutions de stockage externes ou réseau complexes

Par défaut le répertoire par défaut est /var/lib/rancher/k3s/storage, si comme moi vous voulez le déplacer sur un autre répertoire comme /opt/local-path voici comment faire:

  • Création du répertoire

  • Modification du ConfigMap

et remplacer

par

  • Trouver le pod local-path-provisioner

  • Relancer le pod

pout tester vous pouvez créer le fichier pvc.yaml et pod.yaml puis les exécuter sur le noeud en question

Vous pouvez utiliser ces commandes pour vérifier:

MetalLB

Si vous comptez installer MetalLB sur K3s, vous devrez désactiver le service loadbalancer nommé Klipper puis suivre mon installation.

deux méthodes s'offre à vous, soit le désactiver lors de l'installation ou alors modifier le fichier de service k3s.service tous les deux avec la commande --disable=servicelb

Editez le fichier /etc/systemd/system/k3s.service

remplacer

par

une fois fait relancer le service avec la commande:

Fin

Je ne vais pas m'étaler sur toutes les configurations mais vous retrouver tout le nécessaire ici

Mis à jour