Préparation et Installation
Préparation :
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) :
#Declaration of Kubernetes nodes
127.0.0.1 k8s-m1
192.168.20.241 k8s-m2
192.168.20.242 k8s-m3
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.
configuration de quelques fichier de containerd
Premier fichier :
cat <<'EOF' | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
Deuxième fichier :
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
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.32/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Installation du répartiteur de charge (Keepalived)
Pour l'installation executer : apt install keepalived -y Cette installation doit être faite sur chaque master nodes. Une fois l'installation faite il faut maintenant mettre en place les configuration de keepalived sur chaque noeuds. Pour ma part voici les fichier pour chaque noeuds :
Master n°1 :
global_defs {
vrrp_version 3
enable_script_security
}
vrrp_script chk_service {
script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
interval 2
timeout 1
fall 2
rise 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens18
virtual_router_id 51
priority 120
advert_int 1
nopreempt
preempt_delay 10
unicast_src_ip k8s-m1
unicast_peer {
k8s-m2
k8s-m3
}
authentication {
auth_type PASS
auth_pass S3cur3-P@ss
}
virtual_ipaddress {
192.168.20.100/24 dev ens18 label ens18:vip
}
track_interface {
ens18
}
track_script {
chk_service
}
}
Master n°2 :
global_defs {
vrrp_version 3
enable_script_security
}
vrrp_script chk_service {
script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
interval 2
timeout 1
fall 2
rise 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens18
virtual_router_id 51
priority 110
advert_int 1
nopreempt
preempt_delay 10
unicast_src_ip k8s-m2
unicast_peer {
k8s-m1
k8s-m3
}
authentication {
auth_type PASS
auth_pass S3cur3-P@ss
}
virtual_ipaddress {
192.168.20.100/24 dev ens18 label ens18:vip
}
track_interface {
ens18
}
track_script {
chk_service
}
}
Master n°3 :
global_defs {
vrrp_version 3
enable_script_security
}
vrrp_script chk_service {
script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
interval 2
timeout 1
fall 2
rise 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens18
virtual_router_id 51
priority 100
advert_int 1
nopreempt
preempt_delay 10
unicast_src_ip k8s-m3
unicast_peer {
k8s-m1
k8s-m2
}
authentication {
auth_type PASS
auth_pass S3cur3-P@ss
}
virtual_ipaddress {
192.168.20.100/24 dev ens18 label ens18:vip
}
track_interface {
ens18
}
track_script {
chk_service
}
}
Installation de Kubernetes (Kubelet - Kubeadm - Kubectl) :
apt-get update && apt-get install kubelet kubeadm kubectl -y && apt-mark hold kubelet kubeadm kubectl
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