Skip to main content

Préparation et Installation

Préparation : 

A Faire sur toutes les machines / VMs

pour plus de simplicité je vais egalement ajouter les hotes dans le fichier hosts afin de faire de la résolution par nom et eviter les problème en cas de soucis de DNS : 

fichier /etc/hosts (pensez a l'adapter en fonction de chaque hote) :

echo "# Cluster#Cluster Kubernetes \
192.168.20.240      k8s-m1 \
192.168.20.241      k8s-m2
\
192.168.20.242      k8s-m3
\
192.168.20.243      k8s-w1 \
192.168.20.244      k8s-w2
\
192.168.20.245      k8s-w3" >> /etc/hostsw3

Désactivation du SWAP :

Pour ce faire il faut executer nano /etc/fstab

Ensuite il faut trouver la ligne ou le "SWAP" est mentionné et la commenté en mettant un # devant cette ligne. Suite a ça enregistré et redémarrer la machine.

Régalge de la Timezone :

timedatectl set-timezone "Europe/Paris"

Installation de l'agent QEMU

apt install qemu-guest-agent

Installation de Kubernetes

Mise a jour des paquets : 

apt update && apt dist-upgrade -y

Installation des dépendances : 

apt-get install curl pgp -y

Penser bien a changer le numéro de version avec la version actuelle que vous pouvez retrouver sur ce site : https://kubernetes.io/fr/releases/

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

apt install containerd curl -y

systemctl enable --now containerd

apt update

configuration de quelques fichier de containerd

Suppression de config.toml (Si nécessaire)

rm /etc/containerd/config.toml
systemctl restart containerd

Ensuite on crée le dossier containerd dans etc si il n'existe pas déjà :

sudo mkdir -p /etc/containerd

Une fois cela fait ont crée la configuration :

containerd config default | sudo tee /etc/containerd/config.toml

On edite la configuration pour modifié ce paramètres de "false" à "true" :

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

vous pouvez également taper cette commande qui fait directement la modifications (c'est plus rapide) : sudo sed -i -E 's/^([[:space:]]*SystemdCgroup[[:space:]]*=[[:space:]]*)false/\1true/' /etc/containerd/config.toml

puis on redémarre containerd :

systemctl restart containerd

Ensuite on fait les deux manipulations suivantes :

cat <<'EOF' | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

la deuxième :

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

Puis on redémarre une nouvelle fois containerd : systemctl restart containerd

Pour plus d'inforamtions voici la procédure que j'ai suivi : https://sayakm.me/deploying-a-ha-kubernetes-cluster-on-raspberry-pi-using-kubeadm/?utm_source=chatgpt.com

Installation de Kubernetes (Kubelet - Kubeadm - Kubectl) :  

 

apt-get update && apt-get install kubelet kubeadm kubectl -y && apt-mark hold kubelet kubeadm kubectl

La commande apt-mark permet de fixer la version a celle actuelle de cette manière si quelqu'un vient faire un upgrade du système ce paquet ne se mettra pas à jour.

pour vérifier l'installation vous pouvez taper la commande kubectl et vérifié les noeuds qui sont normalement au nombre de 1 actuellement en tapant : kubectl get nodes

Dernière vérifications (a vérifé si il faut le faire ?) :

On va vérifié si les "cgroups mémoire" sont activer pour ce faire faire la commande : cat /proc/cgroups si enable est egal a "memory" ou à "1" alors c'est bon sinon editer le fichier /boot/firmware/cmdline.txt et ajouter : cgroup_enable=memory puis redémarrer votre hote.