Exploration de K3s : distribution Kubernetes légère

Exploration de K3s : distribution Kubernetes légère

Pourquoi opter pour k3s

La nature légère de k3s en fait une solution idéale pour le edge computing et les scénarios IoT, où les ressources sont souvent limitées et l'efficacité primordiale. Dans ces environnements, K3s offre les fonctionnalités essentielles de Kubernetes sans les surcharges.

K3s simplifie le processus de déploiement d'un cluster Kubernetes, le rendant accessible même pour des opérations à petite échelle ou des besoins de développement. En éliminant les composants non essentiels et en utilisant des alternatives plus légères, K3s réduit considérablement la taille et la complexité de Kubernetes tout en conservant ses fonctionnalités principales.

K3s maintient la compatibilité avec l'écosystème Kubernetes plus large, garantissant que les outils et applications conçus pour Kubernetes peuvent généralement être utilisés avec K3s.

L'une des caractéristiques principales de K3s est son installation en un seul binaire, qui inclut à la fois le serveur et l'agent Kubernetes, simplifiant ainsi le processus de configuration. Cela en fait un choix idéal pour les développeurs souhaitant rapidement mettre en place un environnement Kubernetes pour des tests ou du développement, sans les surcharges d'une installation Kubernetes complète.

Installation

1 - Commençons par ouvrir une nouvelle fenêtre de terminal et en tapant la commande suivante (à noter que je suis sur Windows, si vous êtes sur Linux ou MacOs, allez directement à l’étape suivante):

$ wsl --install -d Ubuntu-22.04

À une certaine étape, la configuration vous demandera de spécifier un nom d'utilisateur UNIX (par exemple, john), qui n'a pas besoin de correspondre à votre nom d'utilisateur Windows. L'étape suivante consiste à définir le mot de passe qui sera utilisé pour exécuter une commande en tant qu'administrateur (sudo). Si les opérations sont effectuées correctement, la fenêtre du terminal devrait ressembler à ceci :

2 - Avant de procéder à la configuration de K3s, il est toujours préférable d'exécuter des commandes pour mettre à jour le système d'exploitation avec les derniers correctifs :

$ sudo apt update
$ sudo apt upgrade

Cela garantit que vous travaillez avec les versions les plus récentes et les plus sécurisées du logiciel.

3 - L'étape suivante consiste à installer K3s en utilisant la commande suivante:

$ sudo apt update
$ sudo apt upgrade

L'étape suivante consiste à installer K3s en utilisant la commande suivante :

$ curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644

La commande précédente téléchargera et installera les outils nécessaires, puis lancera le serveur K3s. L'installation réussie d'une instance K3s est illustrée ci-dessous :

Il est nécessaire d'utiliser deux commandes pour vérifier la validité de l'installation et de la configuration de K3s. La première est la suivante :

$ k3s --version
k3s version v1.30.6+k3s1 (1829eaae)
go version go1.22.8

La deuxième commande qui vérifie la validité de l'installation de K3s est la suivante :

$ k3s check-config

La commande k3s check-config effectue un diagnostic de la configuration du système pour s'assurer qu'elle est adaptée au fonctionnement d'un cluster K3s. Elle vérifie des aspects critiques tels que la compatibilité du noyau, les dépendances système requises et la présence des fonctionnalités et modules nécessaires. Cette commande aide à identifier les problèmes potentiels ou les configurations manquantes avant de poursuivre l'installation de K3s, garantissant ainsi un processus de configuration plus fluide :

Félicitations ! Vous avez confirmé que le serveur K3s a été installé dans votre environnement de développement local. Il est maintenant temps de vérifier le cluster Kubernetes et de déployer une application de test.

Pour confirmer que notre nœud K3s est opérationnel, tapez la commande suivante :

$ kubectl get nodes

NAME              STATUS   ROLES                  AGE     VERSION
desktop-m5o6q3c   Ready    control-plane,master   4m34s   v1.30.6+k3s1

Après avoir confirmé que le nœud fonctionne correctement, nous pouvons exécuter la commande suivante pour obtenir plus d'informations sur le cluster en cours d'exécution :

$ kubectl cluster-info

Kubernetes control plane is running at https://127.0.0.1:6443
CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/pr
oxy
Metrics-server is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/https:me
trics-server:https/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Pour le test, nous allons déployer une application nginx pour faire simple.

$ kubectl run nginx --image nginx

Vérifions que notre application a bien été déployé

$ kubectl get po -owide
NAME    READY   STATUS    RESTARTS   AGE   IP          NODE              NOMINATED NODE   READINESS
 GATES
nginx   1/1     Running   0          66s   10.42.0.9   desktop-m5o6q3c   <none>           <none>

Nous allons utiliser le Port forwarding (transfert de port) avec kubectl nous permet de rediriger temporairement le trafic de notre machine locale vers un pod du cluster Kubernetes. Cette méthode est particulièrement utile à des fins de test, car elle nous permet d'interagir avec l'application comme si elle fonctionnait localement, sans avoir besoin de l'exposer publiquement. En transférant un port local vers un port du pod, nous pouvons vérifier les aspects opérationnels du déploiement, en nous assurant que notre application se comporte comme prévu dans un environnement contrôlé avant de la rendre accessible au trafic externe.

$ kubectl port-forward pod/nginx 8080:80
Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80

Maintenant nous pouvons tester notre application avec un simple curl sur sur le port 8080 du localhost.

$ curl http://localhost:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Désinstaller K3s

Pour désinstaller K3s de votre système, K3s fournit un script dédié pour désinstaller proprement l'installation. Ouvrez une fenêtre de terminal et exécutez la commande suivante pour supprimer K3s :

$ /usr/local/bin/k3s-uninstall.sh

Conclusion

K3s est une distribution Kubernetes sous forme de binaire unique, légère en ressources système et facile à maintenir. Cela ne se fait pas au détriment des capacités. Il constitue une bonne alternative à d'autres versions de Kubernetes orientées développeurs, telles que Minikube. Il n'est pas nécessaire de faire tourner des machines virtuelles, d'installer d'autres logiciels ou de réaliser une configuration avancée pour mettre en place votre cluster.