Ce rapport détaille les étapes nécessaires pour déployer un cluster Kubernetes sur des instances Ubuntu. Kubernetes, souvent abrégé en "K8s", est un système d'orchestration de conteneurs qui automatise le déploiement, la mise à l'échelle et la gestion d'applications conteneurisées dans un environnement de cluster.
L'objectif de ce laboratoire est de configurer un cluster Kubernetes comprenant un nœud contrôleur et deux nœuds de travail. Le nœud contrôleur est responsable de la gestion globale du cluster, tandis que les nœuds de travail exécutent les applications conteneurisées.
Le nœud contrôleur héberge plusieurs services essentiels, notamment kube-apiserver
pour accéder au plan de contrôle de Kubernetes, etcd
pour le stockage des données du cluster, et kube-scheduler
pour la planification des pods. Les nœuds de travail exécutent les conteneurs d'application et sont équipés du kubelet
pour gérer les pods et du kube-proxy
pour gérer les règles de réseau.
Ce rapport fournira un guide étape par étape pour installer Docker, les composants Kubernetes (kubeadm
, kubelet
, kubectl
), initialiser le cluster Kubernetes, configurer le réseau pod, et ajouter les nœuds de travail au cluster.
Pour commencer le déploiement d'un cluster Kubernetes, nous devons créer trois machines virtuelles (VM) Ubuntu en respectant les spécifications requises. Chaque instance doit disposer d'au moins 2 CPU et 2 Go de RAM, ainsi qu'une connectivité réseau complète entre toutes les instances pour permettre la communication au sein du cluster.
-
Choix de la Plateforme de Virtualisation
Utilisez une plateforme de virtualisation comme VirtualBox, VMware, ou un service de cloud comme AWS EC2, Google Cloud Compute Engine, ou Microsoft Azure pour créer les machines virtuelles Ubuntu.
-
Configuration des VM
- Créez trois instances Ubuntu (par exemple, Ubuntu 20.04 LTS) avec les spécifications suivantes :
- CPU : Au moins 2 CPU
- RAM : Au moins 2 Go de RAM
- Stockage : Assurez-vous que chaque VM dispose d'un espace de stockage suffisant pour les installations et les opérations de cluster.
- Réseau : Activez la connectivité réseau complète entre toutes les instances.
- Créez trois instances Ubuntu (par exemple, Ubuntu 20.04 LTS) avec les spécifications suivantes :
-
Installation d'Ubuntu
- Démarrez chaque VM avec l'image ISO d'Ubuntu.
- Suivez les instructions d'installation pour configurer Ubuntu sur chaque instance. Assurez-vous d'attribuer les ressources (CPU, RAM) selon les spécifications requises.
-
Configuration du Réseau
- Configurez le réseau pour permettre une connectivité complète entre les VM. Utilisez des adresses IP statiques ou DHCP selon votre environnement.
-
Installation des Outils Requis
- Une fois les VM créées et Ubuntu installé, assurez-vous d'installer les outils requis tels que
openssh-server
pour accéder aux VM en utilisant SSH.
- Une fois les VM créées et Ubuntu installé, assurez-vous d'installer les outils requis tels que
-
Vérification des Spécifications
- Vérifiez que chaque VM répond aux exigences minimales :
- Exécutez la commande
lscpu
pour vérifier le nombre de CPU. - Utilisez
free -h
pour vérifier la quantité de RAM disponible.
- Exécutez la commande
- Vérifiez que chaque VM répond aux exigences minimales :
Après avoir créé les trois machines virtuelles Ubuntu et vérifié qu'elles répondent aux spécifications requises en termes de CPU, RAM et connectivité réseau, vous êtes prêt à passer à l'étape suivante : l'installation des composants nécessaires pour configurer le cluster Kubernetes sur ces instances.
Cette étape de préparation garantit que votre environnement est prêt à accueillir le cluster Kubernetes avec les performances et les capacités nécessaires pour exécuter les charges de travail de manière efficace et fiable.
Pour assurer une identification claire et unique de chaque instance dans le cluster Kubernetes, nous allons définir des noms d'hôtes spécifiques sur toutes les machines virtuelles (VM).
-
Accès aux Machines Virtuelles
Assurez-vous d'avoir un accès SSH ou une connexion console à chaque VM Ubuntu.
-
Modification du Fichier
/etc/hostname
Utilisez les commandes suivantes pour définir les noms d'hôtes sur chaque instance :
-
Sur le Contrôleur (
k8s-controleur
) :sudo hostnamectl set-hostname k8s-controleur sudo echo "k8s-controleur" > /etc/hostname
-
Sur les Nœuds (
k8s-travailleur01
,k8s-travailleur02
) :sudo hostnamectl set-hostname k8s-travailleur01 # Pour le premier nœud sudo echo "k8s-travailleur01" > /etc/hostname sudo hostnamectl set-hostname k8s-travailleur02 # Pour le deuxième nœud sudo echo "k8s-travailleur02" > /etc/hostname
-
-
Redémarrage des Machines Virtuelles
Redémarrez chaque VM pour appliquer les nouveaux noms d'hôtes :
sudo reboot
Après le redémarrage, assurez-vous que les noms d'hôtes ont été correctement définis en utilisant la commande hostname
:
hostname
Cette commande devrait afficher le nom d'hôte correspondant à chaque instance (par exemple, k8s-controleur
, k8s-travailleur01
, k8s-travailleur02
).
Ce guide fournit des instructions étape par étape pour l'installation de Docker Engine sur Ubuntu jusqu'à l'étape 4, y compris l'ajout du dépôt Docker, l'installation des packages Docker, et la vérification de l'installation avec un conteneur hello-world
.
Suivez attentivement les étapes fournies dans votre tutoriel pour configurer Docker sur toutes les VMs de manière efficace et conforme à vos spécifications.
N'hésitez pas à vous référer à votre guide GitHub pour des instructions détaillées et spécifiques sur l'installation de Docker CE sur Ubuntu. Si vous avez des questions ou des problèmes spécifiques pendant le processus d'installation, n'hésitez pas à demander de l'aide ou à poser des questions supplémentaires ici.
Pour configurer Docker pour utiliser systemd
comme pilote cgroup, suivez les étapes suivantes après avoir installé Docker CE sur vos machines virtuelles :
-
Création du Fichier de Configuration pour Docker
Ouvrez un terminal sur la machine virtuelle et créez un fichier de configuration pour Docker en utilisant l'éditeur de texte
nano
:sudo nano /etc/docker/daemon.json
-
Ajout du Contenu dans daemon.json
Ajoutez le contenu suivant dans le fichier
daemon.json
:{ "exec-opts": ["native.cgroupdriver=systemd"] }
Enregistrez et fermez le fichier en utilisant
Ctrl+O
pour sauvegarder etCtrl+X
pour quitter. -
Redémarrage du Service Docker
Redémarrez le service Docker pour appliquer les nouvelles configurations :
sudo systemctl restart docker
Ces étapes permettent à Docker d'utiliser systemd
comme pilote cgroup, ce qui est nécessaire pour une compatibilité optimale avec Kubernetes.
Pour installer Kubernetes (kubeadm, kubelet, kubectl) sur toutes les machines virtuelles (contrôleur et nœuds de travail), suivez les étapes ci-dessous :
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
Téléchargez la clé de signature publique pour les dépôts Kubernetes dans le répertoire /etc/apt/keyrings
:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Note: Si le dossier /etc/apt/keyrings
n'existe pas par défaut (sur les versions plus anciennes de Debian ou Ubuntu), créez-le avant d'exécuter la commande curl
.
Ajoutez le dépôt Kubernetes apt avec la version spécifiée (v1.30 dans cet exemple) :
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
Note: Si vous souhaitez installer une version différente de Kubernetes (par exemple, v1.31), remplacez v1.30
par la version désirée dans les commandes ci-dessus.
Mettez à jour le gestionnaire de paquets apt et installez kubectl :
sudo apt-get update
sudo apt-get install -y kubectl
Pour installer kubeadm et kubelet (composants essentiels de Kubernetes), utilisez les commandes suivantes :
sudo apt-get install -y kubeadm kubelet
Pour vérifier que Kubernetes a été installé avec succès, vous pouvez exécuter les commandes suivantes :
kubectl version --short
Cela affichera la version de kubectl installée sur votre système.
Assurez-vous de répéter ces étapes sur toutes les machines virtuelles (contrôleur et nœuds de travail) pour installer Kubernetes de manière cohérente sur l'ensemble du cluster.
Si vous avez des besoins spécifiques concernant la version de Kubernetes à installer, assurez-vous de remplacer v1.30
par la version souhaitée dans les étapes d'ajout du dépôt Kubernetes.