Comment déployer votre Cluster Kubernetes en local avec Kind sur Linux Ubuntu ?
- Neo's calling
- 26 nov. 2022
- 1 min de lecture

Kind est un outil pour exécuter des clusters Kubernetes. Kind a été principalement conçu pour tester Kubernetes lui-même, mais peut être aussi utilisé pour le développement local ou CI (Intégration continue).
Kind exécute un cluster local en utilisant des conteneurs Docker comme "nœuds".
Cette configuration sera basée sur Ubuntu 22.04 . Nous allons d'abord créer un cluster Kubernetes localement, puis explorer les composants de base présents dans le cluster, nous allons ensuite créer un pod nginx à l'intérieur du cluster à l'aide d'un fichier YAML.
Prérequis
Pour créer ce cluster Kubernetes, vous aurez besoin d'installer :
Ubuntu
Docker
Kind
Kubectl
Installations
Récupération de la listes des mis à jour disponibles
sudo apt update -yInstallation de Docker
sudo apt update docker.ioInstallation de Kind
sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64sudo chmod +x ./kind
sudo mv ./kind /usr/bin/kindInstallation de Kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlCréation d'un cluster single-node
Maintenant, tout est installé vous pouez créer un cluster de kubernetes. Exécuter seulement la commande “kind create cluster” et cela vous créera un cluster Kubernetes. Cependant il sera créé avec les paramètres par défaut. Ces paramètres par défaut sont :
Le nom du cluster sera ‘kind’
Le cluster n'aura qu'un seul nœud (control panel node)
Si vous souhaitez créer un cluster avec plusieurs nœuds dès maintenant alors rendez-vous dans la section suivant Création d'un cluster multi-nodes.
Pour personnalisez le nom du cluster vous pouvez rajouter --name suivi du nom
sudo kind create cluster
Une fois votre cluster déployé localement, vous pouvez énumérer le nombre de pods présents dans ce cluster à l'aide de la commande :
sudo kubectl get pods 
Aucune ressource n'est trouvée dans l'espace de noms par défaut car nous n'avons aucun pod programmé dans l'espace de noms par défaut, permet d'essayer de répertorier tous les pods présents dans tous les espaces de noms de ce cluster à l'aide de la commande mentionnée ci-dessous:
sudo kubectl get pods -A
Actuellement, nous n'avons aucun pod exécuté dans l'espace de noms par défaut du cluster, mais plusieurs conteneurs s'exécutent à l'intérieur de l'espace de noms du système kubernetes.
Vous pouvez créer un pod du service web nginx dans le cluster avec ce fichier YAML:
nano ./nginx-web.yamlapiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: static-web
image: nginxCréation du pod nginx dans le cluster avec la commande kubectl
sudo kubectl create -f ./nginx-web.yaml
Vérification des pods présent dans le cluster
sudo kubectl get podsVérification des noeuds présent dans le cluster
sudo kubectl get nodes -o wideCréation d'un cluster multi-nodes
Voyons maintenant comment vous pouvez faire un cluster avec 1 "master nod" 2 "workers nod" personnalisé avec un fichier de config :
nano kind-config.yaml# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: workerCréation du cluster
kind create cluster --name exemple --config kind-config.yamlMaintenant, le cluster est prêt et vous pouvez utiliser les commandes kubectl pour travailler sur le cluster. Vous pouvez exécuter des commandes kubectl à partir de votre machine locale.
Modifiez le nombre de nœuds dans le cluster.
Vous pouvez avoir des "control-plane nodes" et des "wokers nodes autant que vous le souhaitez. Voici un exemple de configuration avec 3 control-plane et 3 workers.
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: workerSuppression d'un cluster
Vous pouvez supprimer directement avec la commande kind delete suivi du nom du cluster :
kind delete clusterNous pouvons constater que Kind permet de créer des noeuds en local sur un unique hôte et il sera donc nécessaire d'utiliser d'autres technologies comme kubeadm ou minikube pour de la mise en production ou simplement pour déployer un cluster entre plusieurs hôtes.


Commentaires