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