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 :
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 :
- 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 :
Finalement, terminez la configuration de votre instance en choisissant un identifiant et mot de passe :
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
[email protected]:/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 :
[email protected]:/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 :
[email protected]:/mnt/c/Users/lfache$ sudo mv k3s /usr/local/bin/
[email protected]:/mnt/c/Users/lfache$ sudo /usr/local/bin/k3s server
Après quelques instants, le serveur k3s
sera fonctionnel :
Pour rappel, K3S embarque la commande kubectl
. Par exemple depuis un autre terminal :
[email protected]:/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 :
- https://github.com/troytse/wsl-autostart
- https://dev.to/ironfroggy/wsl-tips-starting-linux-background-services-on-windows-login-3o98
- https://github.com/shayne/wsl2-hacks
ou encore adapter ceci :
- https://forum.snapcraft.io/t/running-snaps-on-wsl2-insiders-only-for-now/13033
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 ! 😇