Ku­ber­netes (également appelé K8s) permet une gestion efficace de grands ensembles de con­te­neurs et au­to­ma­tise de nombreux processus dans le dé­ve­lop­pe­ment logiciel. En seulement quelques étapes, il est possible d’installer un cluster Ku­ber­netes per­for­mant et fonc­tion­nel.

Managed Ku­ber­netes de IONOS Cloud
Or­ches­trez vos charges de travail en toute sécurité

Managed Ku­ber­netes est la pla­te­forme idéale pour des ap­pli­ca­tions de con­te­neurs per­for­mantes et hautement évo­lu­tives.

Étape 1 : préparer le système

Dans ce tutoriel, nous prenons comme exemple une ins­tal­la­tion Ku­ber­netes sous Ubuntu.

Pour commencer, assurez-vous que le système est prêt. Pour cela, ouvrez le terminal et effectuez d’abord une mise à jour du système pour vérifier que tous les paquets sont à jour :

sudo apt update && sudo apt upgrade -y
bash

Ensuite, installez les prin­ci­paux uti­li­taires né­ces­saires pour l’ins­tal­la­tion de Ku­ber­netes et Minikube. Utilisez alors la commande suivante :

sudo apt install -y curl wget ca-certificates gnupg lsb-release
bash

Ces outils vous assurent une uti­li­sa­tion sécurisée de sources externes ainsi que le té­lé­char­ge­ment et l’ins­tal­la­tion sans dif­fi­culté d’autres paquets logiciels.

Étape 2 : installer kubectl

Ku­ber­netes repose sur deux types de serveurs : le nœud de contrôle (control plane) et les nœuds de travail (workers). Ceux-ci n’ont pas forcément besoin d’être installés sur des machines physiques dis­tinctes. Grâce aux machines vir­tuelles, il est possible d’exécuter plusieurs nœuds Ku­ber­netes sur un seul or­di­na­teur. Pour les tests, l’outil gratuit Minikube s’avère par­ti­cu­liè­re­ment pratique, car il permet de tra­vail­ler lo­ca­le­ment avec Ku­ber­netes. Comme Minikube nécessite une machine virtuelle ou Docker, il dépend donc d’un hy­per­vi­seur ou d’un logiciel de conteneur. L’outil kubectl est également requis.

Note

Dans ce tutoriel, nous vous pré­sen­tons les bases de Ku­ber­netes avec Docker. Vous pouvez toutefois réaliser la même opération à l’aide d’un logiciel de vir­tua­li­sa­tion comme Vir­tual­Box.

Tout d’abord, installez kubectl (CLI Ku­ber­netes) sur votre système. Ce programme est né­ces­saire pour gérer les clusters.

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
bash
Note

Les commandes d’ins­tal­la­tion dépendent de votre ar­chi­tec­ture système.

Étape 3 : installer Docker

Avant d’utiliser Minikube, assurez-vous que Docker est installé sur votre système. En tant que runtime de conteneur, Docker permet à Minikube d’exécuter des cluster Ku­ber­netes sans avoir recours à un logiciel de vir­tua­li­sa­tion. Installez Docker avec la commande suivante :

sudo apt install -y docker.io
bash

Pour utiliser Docker sans droits root, ajoutez votre compte uti­li­sa­teur au groupe Docker :

sudo usermod -aG docker $USER
newgrp docker
bash

Vous devrez éven­tuel­le­ment vous dé­con­nec­ter puis vous re­con­nec­ter afin que la mo­di­fi­ca­tion soit prise en compte. Vérifiez ensuite l’ins­tal­la­tion avec la commande suivante :

docker run hello-world
bash

Si un court message de con­fir­ma­tion s’affiche, cela signifie que Docker est cor­rec­te­ment installé et prêt à être utilisé avec Minikube.

Étape 4 : installer et démarrer Minikube

À l’étape suivante, installez Minikube dans une version com­pa­tible et con­fi­gu­rez Docker comme pilote. Té­lé­char­gez d’abord la version adaptée de Minikube, rendez le fichier exé­cu­table, puis déplacez-le dans un ré­per­toire système afin que la commande soit dis­po­nible partout :

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
chmod +x minikube-linux-arm64
sudo mv minikube-linux-arm64 /usr/local/bin/minikube
bash

Après l’ins­tal­la­tion, vous pouvez vérifier que Minikube est cor­rec­te­ment configuré avec la commande suivante :

minikube version
bash

Ensuite, démarrez Minikube avec la commande suivante :

minikube start --driver=docker
bash

Dans ce scénario, Minikube utilise Docker comme runtime de conteneur et crée le cluster Ku­ber­netes di­rec­te­ment dans l’en­vi­ron­ne­ment Docker. Lors du démarrage, kubectl devrait être configuré au­to­ma­ti­que­ment. Pour passer de la ligne de commande à une interface graphique (GUI), exécutez la commande sup­plé­men­taire suivante :

minikube dashboard
bash

Le tableau de bord s’ouvre alors dans votre na­vi­ga­teur par défaut.

Image: Tableau de bord Kubernetes
Le tableau de bord Ku­ber­netes s’ouvre alors dans le na­vi­ga­teur, comme illustré ci-dessous avec un tableau de bord encore vide.

Étape 5 : utiliser Ku­ber­netes

Au démarrage de Minikube, un cluster avec un seul nœud est créé au­to­ma­ti­que­ment. Vous pouvez le vérifier à l’aide d’une commande kubectl :

kubectl get nodes
bash

Depuis le tableau de bord, vous pouvez désormais créer des dé­ploie­ments. Cliquez sur le bouton « Create » (en haut à droite) pour ouvrir l’éditeur Web. Dans les formats JSON ou YAML, vous pouvez y définir un dé­ploie­ment. Une fois créé, Ku­ber­netes génère au­to­ma­ti­que­ment plusieurs pods. Vous pouvez ensuite ajuster le nombre de pods souhaité en mettant à l’échelle le dé­ploie­ment. Cette option est ac­ces­sible via le bouton à trois points situé à côté du dé­ploie­ment.

Image: Tableau de bord Kubernetes avec un déploiement et trois pods
Le tableau de bord Ku­ber­netes affiche ici un dé­ploie­ment actif ac­com­pagné de trois pods.
Image: Mise à l’échelle d’un déploiement dans Kubernetes
L’exemple ci-dessous illustre la mise à l’échelle d’un dé­ploie­ment dans le tableau de bord Ku­ber­netes.

Vous pouvez aussi créer des dé­ploie­ments di­rec­te­ment depuis le terminal. Pour cela, le contenu doit au préalable être intégré dans une image Docker et avoir été déposé dans un registre.

kubectl create deployment --image=[chemin vers l’image]
bash

De nom­breuses in­for­ma­tions peuvent être obtenues via des commandes saisies dans l’invite de commandes.

Quels sont les dé­ploie­ments existants ?

kubectl get deployments
bash

Combien y a-t-il de pods ?

kubectl get pods
bash

Quels services sont dis­po­nibles ?

kubectl get services
bash

Quels nœuds sont actifs ?

kubectl get nodes
bash
Image: Terminal avec différentes commandes et sorties Kubernetes
L’exemple ci-dessus montre l’exécution de dif­fé­rentes commandes Ku­ber­netes dans le terminal et leurs résultats.

Étape 6 : publier le dé­ploie­ment

Jusqu’à présent, vous avez sim­ple­ment démarré votre dé­ploie­ment, mais vous ne l’avez pas encore publié. La pu­bli­ca­tion est dé­clen­chée en créant un service :

kubectl expose deploy test-deployment
bash

Cette méthode permet cependant uni­que­ment de publier le service au sein du cluster. Pour pouvoir accéder au dé­ploie­ment en dehors du cluster, il est né­ces­saire d’ajouter des flags sup­plé­men­taires :

kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
bash

Il est alors possible de lancer le service avec Minikube :

minikube service test-deployment
bash

Si vous souhaitez supprimer le service, vous pouvez utiliser la commande cor­res­pon­dante :

kubectl delete service test-deployment
bash

De plus, il est possible de supprimer le dé­ploie­ment :

kubectl delete deployment test-deployment
bash

Pour finir, il suffit d’arrêter le processus pour fermer Minikube :

minikube stop
bash

Si vous ne souhaitez plus utiliser la machine virtuelle ou le runtime de conteneur, vous pouvez le supprimer.

minikube delete
bash

Les réglages effectués et les dé­ploie­ments créés seront alors également supprimés. Si vous relancez Minikube, vous tra­vail­le­rez alors avec un cluster vide.

Aller au menu principal