Pour avoir facilement accès à un cluster Kubernetes sous Windows il y a Docker Desktop et son intégration de Kubernetes. Mais cette fois-ci je n'ai pas voulu installer Docker Desktop pour avoir accès à Kubernetes ...

Je voulais installer Kubernetes - et K3S surtout - directement depuis ma distribution lancée avec WSL2 sous Windows 10.

Regardons comment réaliser cela en quelques minutes à peine !

WSL2 🚀

Dans un premier temps, installons WSL2 sur notre machine :

Ouvrez un terminal powershell en mode Administrateur pour exécuter les commandes suivantes :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Il est nécessaire de redémarrer votre poste afin de prendre en compte les modifications.

Une fois redémarré, je passe la version 2 de WSL par défaut pour mes prochaines instances :

wsl --set-default-version 2

Il vous sera peut-être demandé de télécharger le nouveau noyau Linux :

wsl default version 2

Pour corriger cela, il faut se rendre sur la page de téléchargement du lien suivant :

https://aka.ms/wsl2kernel

Récupérer l'exécutable et installez la mise à jour. Enfin, vous pourrez relancer la commande :

wsl --set-default-version 2

Ensuite il ne reste qu'à télécharger l'image de votre première instance :

  • Soit depuis le Microsoft Store :
MS store Ubuntu
  • Ou en ligne de commande :
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.appx -UseBasicParsing
Add-AppxPackage .\Ubuntu.appx

Enfin lancer votre instance depuis le menu démarrer :

launch ubuntu

Finalement, terminez la configuration de votre instance en choisissant un identifiant et mot de passe :

choose login & password

Vous voila prêt à installer K3S !

K3S 💾

En réalité il s'agit de la partie la plus simple !

Il suffit de récupérer l'exécutable de k3s directement sur Github depuis votre instance WSL :

PS C:\Users\lfache> wsl
lfache@MIDGAR:/mnt/c/Users/lfache$ wget https://github.com/rancher/k3s/releases/download/v1.18.4%2Bk3s1/k3s

🚩 Pensez à récupérer la dernière version en date depuis : https://github.com/rancher/k3s/releases/latest 🚩

Enfin il faut rendre exécutable le fichier binaire :

lfache@MIDGAR:/mnt/c/Users/lfache$ sudo chmod +x k3s

Je vais le déplacer dans le dossier /usr/local/bin de mon instance avant de l'exécuter :

lfache@MIDGAR:/mnt/c/Users/lfache$ sudo mv k3s /usr/local/bin/
lfache@MIDGAR:/mnt/c/Users/lfache$ sudo /usr/local/bin/k3s server

Après quelques instants, le serveur k3s sera fonctionnel :

k3s launch

Pour rappel, K3S embarque la commande kubectl. Par exemple depuis un autre terminal :

lfache@MIDGAR:/mnt/c/Users/lfache$ sudo k3s kubectl get nodes
NAME     STATUS   ROLES    AGE    VERSION
midgar   Ready    master   2m2s   v1.18.4+k3s1

Je n'ai rencontré aucun souci dans l'utilisation de K3S avec WSL2 même si j'utilise ce duo depuis finalement peu de temps.

Bien évidemment il sera nécessaire de relancer le serveur K3S après chaque arrêt de WSL ( un redémarrage de votre poste par exemple ). Il existe quelques solutions afin de lancer des programmes au démarrage de votre instance, comme par exemple :

ou encore adapter ceci :

Mais je ne vais présenter aucune de ces solutions aujourd'hui mais je reviendrais sur cette installation dans un billet très rapidement ( Et oui je ne vais pas garder Traefik en version 1.7 tout de même ! )

En tout cas  n'hésitez pas à m'apporter des remarques ou des commentaires sur Twitter  ou via les commentaires 👇 ! C'est toujours un plaisir d'avoir des retours ! 😇