Skip to main content

Initialisation de mon tout premier cluster HA

Architecture

Hostname
RAM
CPU
DISQUE
FONCTION
k8s-master-1 16 go 4 60 SSD + 100 HDD (/opt) etcd + control-plane
k8s-master-2 16 go 4 60 SSD + 100 HDD (/opt) etcd + control-plane
k8s-master-3 16 go 4 60 SSD + 100 HDD (/opt) etcd + control-plane
k8s-worker-1 16 go 4 60 SSD + 100 HDD (/opt)
k8s-worker-2 16 go 4 60 SSD + 100 HDD (/opt)
k8s-worker-3 16 go 4 60 SSD + 100 HDD (/opt)

Tous les noeuds sont sur debian 13.

Plan de déploiement du cluster :

  • Préparation du système
  • installation des prérequits
    • conainer.io
    • kubelet
    • kubeadm
    • kubectl
  • Préparation du cluster HA (KubeVip)
  • Initialisation du cluster
  • Configuration du cluster
  • Ajout des différents noeud au cluster


Préparation du système

Commandes à réaliser sur tous les noeuds

1) Désactivation de la swap
swapoff -a

Désactivation de la swap de manière pérenne : 

sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
2) Configuration du kernel

Chargement au démarage des modules pour k8s : 

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

Chargement immédiat des modules pour k8s : 

modprobe overlay
modprobe br_netfilter

Le module overlay permet le fonctionnement du système de fichier OverlayFS.
Le module br_netfiltrer permet d'appliquer les iptables à un bridge.

Configuration des paramètres réseaux :

cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

Permet aux bridges de faire appel au FW iptables
Permet d'active le routage

Application des paramètres : 

sysctl --system

installation des prérequits

Commandes à réaliser sur tous les noeuds

Installation des packets courrants :
apt-get update 
apt-get install -y ca-certificates curl gnupg lsb-release htop jq tcpdump ethtool
Installation de containerd.io
install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian bookworm stable" \
  | tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update

apt install -y containerd.io

Configuration de containerd : 

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

Activation de containerd : 

systemctl enable containerd

Activation de l'emploie de systemd comme gestionnaire de Cgroup : 

sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml

Redémarage de Containerd :

systemctl restart containerd
Installation de kubernet

Installation de kubelet kubeadm et kubectl :

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/kubernetes-apt-keyring.gpg > /dev/null
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg

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

sudo apt update

sudo apt install -y kubelet kubeadm kubectl

sudo apt-mark hold kubelet kubeadm kubectl

Préparation du cluster HA (KubeVip)

fdf

Initialisation du cluster

dffd

Configuration du cluster

fddf

Ajout des différents noeud au cluster