Skip to main content

2_CPN

Notre infrastructure

Kubernetes_0

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 machine
  • net.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 :

Kubernetes_1

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