Dans la continuité de la mise en place de votre home lab, nous allons maintenant configurer les deux premiers nœuds de votre cluster Kubernetes.
Configuration de Kubernetes sur les machines virtuelles
Une fois les deux machines virtuelles kubmaster et kubnode1 configurées comme expliqué dans l’étape précédente, nous allons maintenant y déployer nos nœuds Kubernetes.
L’ensemble des instructions de cette page doit être effectué sur les deux machines virtuelles, kubmaster et kubnode1. Pour y accéder, commencez par vous connecter à homelabsrv en SSH :
ssh homelabsrv
Ensuite, ouvrez une session à la console de kubmaster :
cd kub
vagrant ssh kubmaster
Ouvrez un second terminal sur votre poste de travail, connectez-vous à homelabsrv en SSH, puis ouvrez une session à la console de kubnode1 :
ssh homelabsrv
cd kub
vagrant ssh kubnode1
Ainsi, vous aurez sur votre écran deux terminaux, un pour chacune des futures nodes Kubernetes, où vous pourrez exécuter toutes les manipulations décrites sur cette page.
Préparation du Système
Mise à jour du système
Mettez à jour votre système en utilisant les commandes suivantes :
sudo apt-get update && sudo apt-get -y upgrade
sudo reboot
Configurez votre timezone :
sudo dpkg-reconfigure tzdata
Installez les prérequis aux étapes suivantes :
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common bash-completion
Changement de la couleur du prompt
Tout comme on l’a fait pour homelabsrv, nous allons utiliser des couleurs différentes pour différentier les prompts de kubmaster et kubnode1. Utilisez nano ~/.bashrc
pour ouvrir le fichier bashrc dans un éditeur de texte. Cherchez la ligne qui commence par PS1=
et remplacez 01;32m
par :
- Pour kubmaster :
01;33m
- Pour kubnodes :
01;34m

Désactivation du swap
Kubernetes nécessite que l’on désactive le swap. Utilisez la commande suivante :
sudo swapoff -a
Pour que le swap ne remonte pas lors du prochain redémarrage, éditer le fichier /etc/fstab et commentez la ligne montant le swap.

Configuration du fichier hosts
Éditez le fichier /etc/hosts pour y ajouter les adresses IP des 2 nœuds du cluster. Notez que ce sont les mêmes adresses IP que celles que nous avons définies dans le Vagrantfile pour configurer les 2 machines virtuelles.
192.168.56.101 kubmaster
192.168.56.102 kubnode1
Si plus tard vous créez de nouvelles machines virtuelles pour ajouter des nœuds au cluster, n’oubliez pas de mettre à jour les fichiers hosts de toutes les nœuds.
Installation des modules du noyau nécessaires à la conteneurisation
Vérifiez d’abord si les modules du noyau nécessaires sont présents ou non en utilisant :
lsmod | grep overlay
lsmod | grep br_netfilter
Si ces commandes n’affichent rien, cela signifie que les modules ne sont pas présents et qu’il faut les installer. Ajoutez-les avec les commandes suivantes :
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
Configurer le routage pour permettre le bridging
Appliquez les règles iptables au trafic du réseau de pont avec les commandes suivantes :
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system
Sauvegarde de l’état des machines virtuelles
Maintenant que nous avons achevé cette étape, il est recommandé de prendre un instantané (snapshot) des machines virtuelles. Ainsi, en cas de problème lors des étapes suivantes et si vous ne parvenez pas à les résoudre, vous n’aurez pas à recommencer depuis le début.
Fermez les deux sessions SSH ouvertes sur kubmaster et kubnode1, puis exécutez la commande suivante depuis la console de homelabsrv :
vagrant snapshot save SystemReady
Installation de la Containerisation et de K8s
Installation de containerd
Kubernetes est un orchestrateur de conteneurs, et il ne s’occupe pas de les faire tourner. Pour cela, il utilise un sous-système. Dans les versions précédentes, il s’agissait de Docker. Cependant, dans les versions les plus récentes, K8s utilise containerd, ce qui facilite l’installation et la gestion du cluster.
Commençons par ajouter les dépôts nécessaires :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ensuite, installons les paquets :
sudo apt-get update
sudo apt-get install -y containerd.io
Il existe une fonctionnalité Linux appelée les Control Groups, abrégée en cgroups, qui permet le partage d’accès aux ressources du système. Par défaut lors de son installation, containerd n’utilise pas le même cgroup que Kubernetes. Corrigeons cela avec les commandes suivantes :
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
Recherchez la ligne SystemdCgroup = false
et remplacez-la par SystemdCgroup = true
. Une fois cela fait, redémarrez le service containerd :
sudo systemctl restart containerd
Installation de Kubernetes
Commençons par ajouter les dépôts nécessaires :
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/kubernetes-xenial.gpg
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Ensuite, installons les paquets :
sudo apt update && sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Et pour finir, nous allons permettre l’autocompletion dans les CLI de Kubernetes:
echo "source <(kubectl completion bash)" >> ~/.bashrc
Sauvegarde de l’état des machines virtuelles
Nous allons créer un nouveau snapshot. Fermez les deux sessions SSH ouvertes sur kubmaster et kubnode1, puis exécutez la commande suivante depuis la console de homelabsrv :
vagrant snapshot save K8Installed
Nous sommes prêts à finaliser Kubernetes
Nous approchons enfin de la dernière étape de la mise en place de Kubernetes dans votre home lab. Dans la prochaine page, nous allons monter le cluster Kubernetes et aborder l’utilisation des tout premiers outils de diagnostic.
Navigation
Sommaire du dossier : Apprendre et expérimenter Kubernetes à l’aide de son Home Lab
Chapitres:
- Pourquoi un home lab facilite-t-il l’apprentissage et l’utilisation de Kubernetes ?
- Choisir un mini-pc pour héberger le cluster Kubernetes de son home lab
- Comprendre Kubernetes : Glossaire des termes fondamentaux
- Configuration d’un Mini-PC pour accueillir Kubernetes : Installation d’Ubuntu Server 22.04 LTS
- Précédent : Construire votre Home Lab : la création de machines virtuelles pour Kubernetes
- Configuration votre home lab: Préparation des VMs pour le Cluster Kubernetes
- Suivant : Installation des services Kubernetes sur les Machines Virtuelles