- Câest quoi Kubernetes ?
- Câest quoi le Minikube ?
- Câest quoi WSL ?
- Pourquoi utiliser WSLÂ ?
- Comment fonctionne WSLÂ ?
- Comment utiliser minikube sur WSL
- Des ressources (en français et anglais)
Cette semaine, jâai commencĂ© Ă suivre un cours pour devenir certifiĂ© avec lâutilisation de Kubernetes en utilisant un cours fourni par The Linux Foundation.
Avoir une certification Certified Kubernetes Administrator (CKA) serait bon pour ma carriĂšre dâingĂ©nieur DevOps.
Cependant, jâai essayĂ© de suivre les exercices de laboratoire sans utiliser de fournisseurs de cloud comme Amazon Web Services (AWS) ou Google Cloud Platform (GCP).
Pourquoi? Ces plateformes sont chĂšres et elles nĂ©cessitent ma carte de crĂ©dit. Je ne suis pas chaud Ă lâidĂ©e de payer pour apprendre Ă utiliser un logiciel comme Kubernetes.
Heureusement, il existe une application que nous pouvons utiliser pour exécuter un cluster Kubernetes localement sur nos ordinateurs gratuitement.
Ce logiciel sâappelle minikube.
Au cours de cet article, nous verrons ensemble comment installer minikube sur WSL pour faire fonctionner un environnement Kubernetes sur votre ordinateur.
AprÚs avoir lu cet article, vous pourrez développer et tester gratuitement Kubernetes en utilisant WSL (Ubuntu).
Câest quoi Kubernetes ?
Kubernetes est un systĂšme dâorchestration de conteneurs open source qui automatise le dĂ©ploiement, la mise Ă lâĂ©chelle et la gestion des applications conteneurisĂ©es. Il a Ă©tĂ© initialement dĂ©veloppĂ© par Google et est maintenant gĂ©rĂ© par la Cloud Native Computing Foundation (CNCF).
Kubernetes est devenu la norme de facto pour lâorchestration de conteneurs et est largement utilisĂ© par des organisations de toutes tailles pour dĂ©ployer et gĂ©rer leurs applications conteneurisĂ©es dans des environnements de production.
Pourquoi utiliser Kubernetes ?
Avec Kubernetes, les développeurs peuvent facilement déployer et gérer des applications conteneurisées sur un cluster de serveurs ou de machines virtuelles.
Kubernetes fait abstraction de lâinfrastructure sous-jacente et fournit une API unifiĂ©e pour le dĂ©ploiement et la gestion des applications, permettant aux dĂ©veloppeurs de se concentrer sur lâĂ©criture de code plutĂŽt que de se soucier de lâinfrastructure.
Fonctionnalités de Kubernetes
Kubernetes fournit un certain nombre de fonctionnalités puissantes, notamment :
- Mise Ă lâĂ©chelle automatique
- Mises Ă jour continues
- Autoguérison
- DĂ©couverte des services
Ces fonctionnalitĂ©s permettent de garantir que les applications sont toujours disponibles et fonctionnent correctement, mĂȘme en cas de pannes matĂ©rielles ou logicielles.
Câest quoi le Minikube ?
Minikube est un outil open source qui permet aux dĂ©veloppeurs dâexĂ©cuter et de tester des clusters Kubernetes localement sur leurs propres machines.
Il offre un moyen simple et facile dâexpĂ©rimenter et de tester Kubernetes sans nĂ©cessiter un environnement de production Ă grande Ă©chelle.
Comment fonctionne Minikube ?
Minikube permet aux dĂ©veloppeurs de crĂ©er un cluster Kubernetes avec un node unique (⊠ou plusieurs nodes) sur leur machine locale Ă lâaide dâune machine virtuelle ou dâun runtime de conteneur, tel que Docker.
Minikube fournit une API et une interface de ligne de commande qui permettent aux dĂ©veloppeurs dâinteragir avec le cluster Kubernetes exĂ©cutĂ© sur leur ordinateur local, comme ils le feraient avec un environnement Kubernetes de production.
Cela facilite le test et le dĂ©bogage des applications avant de les dĂ©ployer dans un environnement de production sans avoir besoin dâune infrastructure ou de services cloud coĂ»teux.
Dans lâensemble, Minikube est un outil prĂ©cieux pour les dĂ©veloppeurs qui souhaitent :
- Apprendre Kubernetes
- Expérimenter de nouvelles fonctionnalités
- Tester leurs applications dans un environnement local
Câest quoi WSL ?
Windows Subsystem for Linux (WSL) est une fonctionnalitĂ© de Windows 10 et des versions ultĂ©rieures qui permet aux utilisateurs dâexĂ©cuter des applications Linux (telles quâUbuntu) en mode natif sur Windows.
Plus prĂ©cisĂ©ment, il fournit une interface de kernel compatible Linux qui permet aux binaires Linux de sâexĂ©cuter sur Windows.
Pourquoi utiliser WSLÂ ?
WSL permet aux dĂ©veloppeurs et aux administrateurs systĂšme dâutiliser des outils et utilitaires Linux, tels que bash
, grep
, sed
et awk
, directement sur Windows, sans avoir besoin dâune machine virtuelle distincte ou dâune configuration Ă dual-boot.
Cela facilite le dĂ©veloppement, le test et le dĂ©ploiement dâapplications conçues pour fonctionner sous Linux.
WSL comprend Ă©galement une interface de ligne de commande (CLI) pour gĂ©rer et configurer lâenvironnement Linux sous Windows. Les utilisateurs peuvent :
- Installer et gĂ©rer des distributions Linux, telles quâUbuntu, Arch, Debian, etc.
- Créer et gérer des comptes utilisateurs Linux
- Configurer les paramÚtres réseau et les préférences systÚme
Personnellement, câest une fonctionnalitĂ© tellement gĂ©niale, car je peux exĂ©cuter mes applications natives Windows comme Photoshop, Steam, etc. parallĂšlement Ă mon environnement de dĂ©veloppement dans Ubuntu.
⊠Sans oublier que cela me permet dâutiliser mon GPU Ă pleine puissance, car les driveurs GPU pour Linux sont gĂ©nĂ©ralement⊠mauvais.
Comment fonctionne WSLÂ ?
WSL utilise une machine virtuelle Hyper-V lĂ©gĂšre pour exĂ©cuter un kernel Linux complet, offrant de meilleures performances et une meilleure compatibilitĂ© avec une plus large gamme dâapplications Linux.
Pour conclure, WSL est un outil puissant pour les développeurs et les administrateurs systÚme qui ont besoin de travailler avec des outils basés sur Linux sur une plate-forme Windows.
Comment utiliser minikube sur WSL
Je suppose que WSL est dĂ©jĂ installĂ© sur votre ordinateur. Jâutilise Ubuntu v20.04 LTS comme version Linux.
Ătape 1 : Installez Docker sous Windows
La premiĂšre Ă©tape consiste Ă installer Docker sur Windows en suivant ce lien.
Ouvrez Docker Desktop sur Windows.
Activez les paramĂštres dâintĂ©gration WSL de Docker
AprĂšs lâinstallation, accĂ©dez Ă Settings (icĂŽne dâengrenage) -> Resources -> WSL Integration.
Cochez ensuite la case Enable integration with my default WSL distro.
Accédez ensuite à General, puis cochez la case Use the WSL2 based engine.
Ătape 2: Installez minikube sur Windows
Ensuite, il faut juste installer minikube
sur Windows.
Rien de plus simple ! Suivez ce lien pour lâinstaller sur votre ordinateur.
Configurez WSL pour accéder à minikube
Pour accéder facilement à minikube
cĂŽtĂ© Windows, nous pouvons crĂ©er un petit script Ă lâemplacement /usr/local/bin/minikube
avec le contenu suivant :
#!/bin/sh
/mnt/c/Program\ Files/Kubernetes/Minikube/minikube.exe $@
Ătape 3 : Installez kubectl sur WSL (Ubuntu)
Pour accéder à notre cluster Kubernetes et pour exécuter des commandes sur notre cluster Kubernetes créé par minikube
, nous avons besoin dâun outil CLI pour le faire.
Lâoutil que nous allons utiliser sâappelle kubectl
. Câest la norme de lâindustrie !
Pour installer kubectl
suivez ce lien.
Veuillez noter que cette installation aura lieu sur WSL avec Ubuntu et non du cÎté Windows.
Ătape 4 : Configurer kubectl pour utiliser minikube
Nous devons dâabord crĂ©er la configuration pour accĂ©der Ă minikube
sur Windows avec kubectl
. Nous pouvons le faire en démarrant minikube comme ceci :
minikube start
Cette Ă©tape est cruciale. Vous devriez voir minikube
démarrer avec succÚs.
đ minikube v1.29.0 on Microsoft Windows 11 Pro 10.0.22000.1574 Build 22000.1574
âš Using the docker driver based on existing profile
đ Starting control plane node minikube in cluster minikube
đ Pulling base image ...
đ Restarting existing docker container for "minikube" ...
đł Preparing Kubernetes v1.26.1 on Docker 20.10.23 ...
đ Configuring bridge CNI (Container Networking Interface) ...
đ Verifying Kubernetes components...
âȘ Using image gcr.io/k8s-minikube/storage-provisioner:v5
đ Enabled addons: default-storageclass, storage-provisioner
đ Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
AprĂšs, vous devriez voir la configuration de minikube
dans le fichier %UserProfile%\.kube\config
sur Windows.
Copiez le kubeconfig de Windows
Ne sautez pas cette étape !
Copiez le contenu de .kube/config
à partir de Windows vers WSL (Ubuntu) avec la commande suivante :
cp /mnt/c/Users/{USER_ACCOUNT}/.kube/config ~/.kube
Vous devriez voir le contenu de .kube/config
comme suit :
apiVersion: v1
clusters:
- cluster:
certificate-authority: C:\Users\{...}.crt
extensions:
- extension:
last-update: {}
provider: minikube.sigs.k8s.io
version: v1.29.0
name: cluster_info
server: https://{...}
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: {...}
provider: minikube.sigs.k8s.io
version: v1.29.0
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: C:\Users\{...}.crt
client-key: C:\Users\{...}.key
Vous devrez convertir les chemins de fichiers Windows en chemins de fichiers WSL.
Par exemple, convertissez C:\Users\carmencincotti\
en /mnt/c/Users/carmencincotti
. Notez la différence dans le sens des barres obliques (\
versus /
).
Si vous ne savez pas comment procéder, vous pouvez utiliser la commande wslpath
comme suit :
wslpath -u "C:\Users\carmencincotti\.minikube\profiles\minikube\client.key"
>> /mnt/c/Users/carmencincotti/.minikube/profiles/minikube/client.key
Ătape 5 : Copiez lâenvironnement Docker
Enfin, il suffit dâinjecter les variables dâenvironnement Docker dans lâenvironnement de WSL (Ubuntu).
Pour ce faire, utilisez simplement ces deux commandes :
eval $(sh /usr/local/bin/minikube docker-env --shell=bash)
export DOCKER_CERT_PATH=$(wslpath -u "${DOCKER_CERT_PATH}")
Pour vérifier que ces deux commandes ont fonctionné, vous pouvez utiliser la commande env
dans le terminal pour voir si la configuration a été ajoutée à env
.
Accéder à minikube sur WSL avec kubectl
AprĂšs, il est dĂ©sormais possible dâutiliser kubectl
pour envoyer des commandes Ă minikube
Ă partir de WSL !
kubectl config use-context minikube
>> Switched to context "minikube".
kubectl get nodes
>> NAME STATUS ROLES AGE VERSION
>> minikube Ready control-plane 6d22h v1.26.1