Kubernetes

Qu’est ce que Kubernetes

Kubernetes est un système d’orchestration de conteneurs open-source qui permet de déployer, de scaler et de gérer des applications conteneurisées.

Il est conçu pour automatiser les tâches courantes liées à la gestion de conteneurs, telles que le déploiement, la mise à l’échelle et la surveillance.

Installation de Kubernetes

Prérequis : avoir installé une version récente de Docker sur votre système. ( Voir la documentation sur docker .)

Commencez par ajoutez les clés de paquet pour Kubernetes en utilisant la commande suivante :

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Ajoutez ensuite le dépôt Kubernetes à la liste des dépôts en utilisant la commande suivante :

echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

Mettez à jour la liste des paquets en utilisant la commande suivante :

sudo apt-get update

Installez kubeadm , kubectl et kubelet en utilisant la commande suivante :

sudo apt-get install -y kubeadm kubectl kubelet

Utilité

Kubernetes permet de gérer les conteneurs de manière efficace, en automatisant les tâches courantes liées à la gestion de conteneurs, telles que le déploiement, la mise à l’échelle et la surveillance.

Il permet de faciliter la mise en place d’une architecture microservices.

Il permet de faciliter les déploiements continu, en permettant de mettre à jour les conteneurs de manière transparente pour les utilisateurs finaux.

Fonctionnement

Kubernetes utilise une architecture de noeuds et de maîtres pour gérer les conteneurs. Les noeuds sont des machines physiques ou virtuelles qui exécutent les conteneurs, tandis que les maîtres sont des machines qui gèrent les noeuds.

Les conteneurs sont déployés sur les noeuds sous forme de pods, qui sont des groupes de conteneurs qui partagent un espace de stockage et une adresse IP.

Les maîtres utilisent les API Kubernetes pour gérer les pods et les noeuds, en utilisant des objets Kubernetes tels que les déploiements, les services et les horaires.

Pour initialiser un cluster vous devez effectuer cette commande :

sudo kubeadm init

Utilisez kubectl pour déployer des applications sur le cluster en utilisant les commandes suivantes :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Vous pouvez verifiez l’état de votre cluster en utilisant la commande suivante :

kubectl get nodes

Ajoutez des noeuds ( workers ) au cluster en utilisant la commande suivante :

kubeadm join [cluster-ip]:[port] --token [token] --discovery-token-ca-cert-hash [hash]

Commandes utiles Kubernetes

kubectl get : affiche les ressources Kubernetes dans le cluster.

kubectl describe : affiche les détails d’une ressource spécifique.

kubectl apply : applique les modifications d’une ressource spécifique.

kubectl delete: supprime une ressource spécifique.

kubectl exec : exécute une commande dans un conteneur spécifique.

kubectl logs : affiche les journaux d’un conteneur spécifique.