Kubernetes installation
Ce document décrit l'installation des composants requis pour la mise en place d'un
cluster Kubernetes sur des machines Ubuntu 22.04.
Cette installation doit être effectuée sur chaque machine du cluster.
Prérequis
Host Linux compatible
2 GB ou + de RAM par machine
2 CPUs ou +
Connection réseau entre chaque machine du cluster (publique ou privée)
Hostname, adresse MAC et product_uuid unique pour chaque nœud
Certains ports doivent être ouvert, voir la
documentation .
La mémoire SWAP doit être désactivée
SWAP
Il faut désactiver la mémoire SWAP de chaque machine du cluster
Bash sudo swapoff -a
sudo sed -i '/\s\+swap\s\+/ s/^/#/' /etc/fstab
IPv4 forwarding
Exécuter les commandes suivantes
Bash cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo 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
# Apply sysctl params without reboot
sudo sysctl --system
Installation de Containerd
Chaque nœud doit installer une container runtime interface . Dans le cadre de ce
document, Containerd
est utilisé.
Dans un premier temps, le dépôt apt de Docker doit être mis en place
Bash sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch= $( dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$( . /etc/os-release && echo " $VERSION_CODENAME " ) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Containerd peut ensuite être installé
Bash sudo apt-get install -y containerd.io
Suite à ça, le SystemdCgroup
doit être activé avec les commandes suivantes
Bash sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo sed -i 's/ SystemdCgroup = false/' \
' SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd
Configuration
L'infrastructure école nécessite une configuration supplémentaire pour définir un miroir
de registre afin de pouvoir pull les images depuis notre propre registre privé.
Il faut donc modifier manuellement le fichier de configuration de containerd sur chaque
worker pour y ajouter les miroirs de registre ci-dessous.
Bash sudo nano /etc/containerd/config.toml
TOML ...
[plugins. "io.containerd.grpc.v1.cri" .registry.mirrors]
[plugins. "io.containerd.grpc.v1.cri" .registry.mirrors. "registry.computaceae-it.tech" ]
endpoint = [ "http://registry.bota-hepia.ch" ]
...
Bash sudo systemctl restart containerd
Installation de Kubernetes
Cette section liste les étapes à effectuer pour l'installation de Kubernetes v1.30 sur
une machine Ubuntu 22.04, avec kubeadm.
Kubernetes GPG Key
Il faut télécharger la clef Kubernetes GPG (GNU Privacy Guard) :
Bash sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key \
| sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Kubernetes Repository
Il faut ajouter les répertoires de Kubernetes à notre manageur de paquets :
Bash echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg]' \
' https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' \
| sudo tee /etc/apt/sources.list.d/kubernetes.list
Installation des composants K8s
Bash sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# (Optionnal) Auto-completion
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
Installation de Helm
Helm est le manageur de paquet pour Kubernetes. Il facilite la mise en place
d'application au sein du cluster. Son installation est recommandé sur les noeuds du plan
de contrôle.
Bash curl https://baltocdn.com/helm/signing.asc | gpg --dearmor \
| sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch= $( dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" \
| sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
# (Optionnal) Add the autocompletion
helm completion bash | sudo tee /etc/bash_completion.d/helm
Configuration de Kubernetes
Le cluster Kubernetes est désormais prêt à être mis en place. Veuillez-vous référer au
guide Kubernetes à haute disponibilité pour les étapes suivantes à réaliser.
Ressources
Guides d'installation :
Helm :
11 août 2024 16:57:40
29 mai 2024 17:32:38