2_CPN
Notre infrastructure

Install Control Plane Node
les prérequis à installer avant toute choses :
sudo apt install -y net-tools curl wget lvm2 apt-utils ca-certificates gpg apt-transport-https
Désactiver le swap aide à garantir des performances optimales, une meilleure isolation des ressources et une stabilité accrue pour votre cluster Kubernetes
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Maintenant faut activer deux modules overlay et br_netfiler
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
Maintenant on active les modules
sudo modprobe overlay
sudo modprobe br_netfilter
On créer un fichier de configuration pour la gestion réseau dédier à kubernetes
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
détails:
net.bridge.bridge-nf-call-iptables = 1: Ce paramètre permet au trafic sur les ponts réseau de passer par les règles iptables du filtre IPv4.net.ipv4.ip_forward = 1: Ce paramètre active le routage des paquets IPv4 sur notre machinenet.bridge.bridge-nf-call-ip6tables = 1: Ce paramètre permet au trafic sur les ponts réseau de passer par les règles iptables du filtre IPv6.
on n'a plus qu'a recharger les paramètre de configuration du kernel
sudo sysctl --system
petit update et installation de containerd
sudo apt update
sudo apt -y install containerd
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
la dernier commande ci dessus sert à initialise la configuration par défaut de containerd et l'écrit dans un fichier de configuration, en redirigeant toute sortie inutile.
Comme kubernetes utilise systemd et que nous allons créer un cluster nous devons passer la valeur de base qui est falsepar true
sudo nano /etc/containerd/config.toml
Comme ceux ci :

puis on relance le daemon et on l'enable :
sudo systemctl restart containerd
sudo systemctl enable containerd
On passe à la partie installation de kubectl kubeadm et kubectl
Je télécharge la clé gpg et le bon repo
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
puis on installe
sudo apt update
sudo apt install kubelet kubeadm kubectl -y
sudo apt-mark hold kubelet kubeadm kubectl
Pour initier le master nous devons utiliser la commande :
sudo kubeadm init --apiserver-advertise-address=10.10.0.100 --pod-network-cidr=192.168.0.0/16
puis en output il nous demande de taper les 3 commande suite :
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Calico est une solution de mise en réseau qui assure la connectivité et la sécurité des conteneurs au sein d'un cluster Kubernetes. Il offre des fonctionnalités de routage basé sur IP, de pare-feu et de politique de réseau qui permettent de contrôler finement la communication entre les pods. IL utilise le protocole BGP pour gérer efficacement le trafic du clusters.
Il nous faut maintenant déployer calico :
curl https://raw.githubusercontent.com/projectcalico/calico/v3.29.1/manifests/calico.yaml -O
puis l'apply :
kubectl apply -f calico.yaml
Pour afficher la commande pour joindre le cluster :
kubeadm token create --print-join-command