Installer kubernetes sur Windows
Depuis l’annonce de la fin de la gratuité de Docker Desktop pour les entreprises, je cherche une solution pour le remplacer. Et pour le moment je ne trouve pas mon bonheur et oui, je dois construire des images à base de Windows.
Pour ceux qui sont à la recherche d’une implémentation de kubernetes sur un poste de développement pour construire des solutions à base de Linux, Minikube est une belle solution. Il peut facilement servir de base pour une formation à kubernetes.
Minikube utilise hyper-v ou wls2 comme hyperviseur et donc une mini distribution dédiée pour faire tourner le cluster kubernetes. Ma préférence va à la solution hyper-v, car bien plus performante que celle de wsl2 et surtout moins de contraintes (ipv6, virtualisation imbriquée, …).
Installation de minikube sur Windows
Le plus simple est d’utiliser chocolatey ↗. Dans une fenêtre powershell ouverte avec les droits admin tapez la commande suivante :
choco install -y minikube
Si vous n’avez pas activé hyper-v dans la même fenêtre powershell admin :
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
S’il est installé, mais désactivé :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Une fois installée attention à ne pas démarrer votre minikube dans la même
fenêtre powershell. En effet, pas besoin des droits admin pour démarrer
l’instance minikube. Si WSL2 est activé il l’utilisera sinon il tentera
alors sous hyper-v. On peut forcer le choix en ajoutant à la fin de la commande
--driver=hyperv
.
minikube start --driver=hyperv👍 Starting control plane node minikube in cluster minikube🐳 Preparing Kubernetes v1.19.2 on Docker 19.03.12 ...🔎 Verifying Kubernetes components...🌟 Enabled addons: default-storageclass, storage-provisioner🏄 Done! kubectl is now configured to use "minikube" by default
Ensuite il est possible d’utiliser la classique commande kubectl pour manager votre cluster
kubectl get namespace -o yamlkubectl get nodes o wide
Pour réinitialiser le cluster le plus simple est de le détruire.
minikube delete🔥 Deleting "minikube" ...💀 Removed all traces of the "minikube" cluster.
Construire des images docker
Il est possible d’utiliser les ressources du cluster pour construire des images Docker. Pour cela il faut installer la cli de docker, le lien étant difficile à trouver le voici : https://download.docker.com/win/static/stable/x86_64/ ↗
Je vous conseille de l’installer dans le même répertoire que minikube:
C:\Program Files\Kubernetes\Minikube
Dans une fenêtre powershell, il faut activer l’environnement docker :
minikube -p minikube docker-env | Invoke-Expression
A partir de là, vous pouvez lancer les commandes classiques de docker:
docker imagesdocker build -t bandit:1.7.0 .docker run -it alpine:3.14 sh
Mais attention, il est seulement possible de faire tourner des images avec un noyau Linux. Et c’est là que ça coince pour moi.
Mais voilà en regardant dans l’archive, on trouve quoi dockerd. Je ferais un billet.zip