Aller au contenu principal

Installation Kubernetes

Introduction

Le but de cette documentation est d'installer Kubernetes On utilisera le moteur de docker

Plan d'installation

Nous aurons dans cet example l'architecture suivante

1 master : vm-kube-master 2 worker : vm-kube-node1, vm-kube-node2

Les 3 seront sous debian 12 (bookworm)

Installation

Etape 1 : Mise à jour des systèmes

sudo apt-get update && sudo apt-get full-upgrade
sudo reboot

Etape 2 : Installer l'outil d'amorçage Kubeadm

Nous commencerons par ajouter le référentiel Kubernetes au système. Importez d’abord la clé GPG :

sudo apt install curl apt-transport-https gpg -y
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cgoogle.gpg

Ajoutez le dépôt avec la commande :

sudo tee /etc/apt/sources.list.d/kubernetes.list<<EOF
deb http://apt.kubernetes.io/ kubernetes-xenial main
# deb-src http://apt.kubernetes.io/ kubernetes-xenial main
EOF

Une fois ajouté, mettez à jour l'index du package APT :

sudo apt update

Installez maintenant les outils requis, c'est-à-dire kubectl, kubeadm et kubelet

sudo apt install wget curl vim git kubelet kubeadm kubectl -y
sudo apt-mark hold kubelet kubeadm kubectl

Vérifiez l'installation :

kubectl version --client && kubeadm version

Etape 2 : Désactiver l'échange et activer les modules du noyau

Lors de la rotation d'un cluster Kubernetes avec kubeadm, il est recommandé de désactiver le swap pour plusieurs raisons telles que la stabilité, les performances et la gestion des ressources.

Ici, nous allons désactiver tous les swaps de /proc/swaps avec la commande :

sudo swapoff -a

check :

free -h

La prochaine chose est de le désactiver définitivement dans /etc/fstab

sudo vim /etc/fstab
# Commentez la ligne du swap

Une fois la ligne commentée, enregistrez le fichier et activez les modules Kernel requis :

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

Activez les modules avec la commande :

sudo modprobe overlay
sudo modprobe br_netfilter

Modifiez le fichier ci-dessous comme indiqué

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

Rechargez les paramètres :

sudo sysctl --system

Etape 3 : Installer et configurer le runtime de conteneur

Tout d’abord, ajoutez le dépôt Docker

sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/debian.gpg
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Installez le runtime Docker :

sudo apt update
sudo apt install -y containerd.io docker-ce docker-ce-cli

Créez le répertoire requis :

sudo mkdir -p /etc/systemd/system/docker.service.d

Ensuite, créez le fichier daemon.json :

sudo tee /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

Assurez-vous que le service est démarré et activé

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker