Tu souhaites déployer un cluster Kubernetes robuste pour orchestrer tes conteneurs ? Découvre comment installer Kubernetes kubeadm en suivant ce guide complet et détaillé. Que tu sois développeur, DevOps ou administrateur système, cette approche reste la plus directe pour créer un cluster production-ready sans complexité inutile.
Kubernetes est devenu l'orchestrateur de conteneurs incontournable en 2026. Avec plus de 60% des entreprises ayant adopté cette technologie selon les dernières statistiques Kubernetes, maîtriser son installation est essentiel. Kubeadm simplifie considérablement le processus de bootstrapping en automatisant la création du cluster, la gestion des certificats et la configuration des composants critiques.
Ce tutoriel te guidera pas à pas depuis les prérequis jusqu'à la mise en place d'un cluster fonctionnel. Nous aborderons la transition vers containerd, les configurations réseau et les bonnes pratiques pour garantir la stabilité de ton infrastructure.
Prérequis et Installation de Kubeadm avec Containerd
Avant de commencer à installer Kubernetes kubeadm, assure-toi que ton environnement respecte les exigences matérielles et logicielles. Chaque nœud doit disposer d'au moins 2 CPU, 2 Go de RAM et 20 Go d'espace disque disponible. Le système d'exploitation recommandé est Ubuntu 22.04 LTS ou une distribution Linux compatible.
La première étape consiste à désactiver le swap sur tous les nœuds. Kubeadm exige cette configuration car le scheduler Kubernetes optimise l'allocation des ressources en fonction de la mémoire disponible. Exécute sudo swapoff -a puis commente la ligne correspondante dans /etc/fstab pour rendre cette modification persistante.
Concernant le runtime de conteneurs, la donne a changé depuis 2024. Docker n'est plus le choix par défaut : la dépréciation de dockershim par Kubernetes oblige à opter pour containerd. Ce runtime offre des performances supérieures, une empreinte mémoire réduite et une meilleure sécurité grâce à son architecture simplifiée. Pour installer containerd, utilise les commandes suivantes :
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerdEnsuite, configure les modules kernel nécessaires. Kubernetes utilise overlay pour le système de fichiers et br_netfilter pour la gestion du réseau bridge. Charge-les avec modprobe et rends-les persistants :
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOFPour terminer la préparation, ajuste les paramètres sysctl pour permettre le forwarding IPv4 et garantir que les règles iptables voient correctement le trafic bridge. Ces paramètres sont cruciaux pour le fonctionnement des plugins CNI.
Configuration Initiale du Cluster Master et Nodes
Une fois l'environnement préparé, procède à l'installation des outils Kubernetes. Ajoute le dépôt officiel et installe kubeadm, kubelet et kubectl dans leur dernière version stable :
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.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectlSur le nœud master, initialise le cluster avec kubeadm. Spécifie le CIDR des pods (généralement 10.244.0.0/16 pour Flannel ou 192.168.0.0/16 pour Calico) et l'adresse IP du control plane :
sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=<IP_MASTER>Après l'initialisation, configure kubectl pour ton utilisateur. Cette étape permet d'interagir avec le cluster sans privilèges root :
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/configDéploie ensuite un plugin CNI pour permettre la communication entre pods. Selon la documentation officielle, Calico est recommandé pour la production grâce à ses fonctionnalités de politiques réseau :
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yamlEnfin, récupère la commande de jointure affichée à la fin de kubeadm init. Elle contient le token et le hash du certificat nécessaires pour ajouter des workers.
Haute Disponibilité et Bonnes Pratiques
Pour un environnement de production, configurer un cluster Kubernetes haute disponibilité est indispensable. Kubeadm supporte deux architectures : l'etcd empilé (stacked) où etcd s'exécute sur les nœuds master, ou l'etcd externe sur des machines dédiées. L'approche stacked reste la plus courante pour sa simplicité.
L'ajout de nœuds workers se fait via la commande kubeadm join récupérée précédemment. Sur chaque worker, exécute :
sudo kubeadm join <IP_MASTER>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>Si le token a expiré (validité 24h par défaut), génères-en un nouveau sur le master avec kubeadm token create --print-join-command. Vérifie l'état des nœuds avec kubectl get nodes et assure-toi qu'ils affichent tous l'état Ready.
Surveille régulièrement les pods système dans le namespace kube-system. Les composants critiques comme kube-apiserver, kube-controller-manager et kube-scheduler doivent toujours être opérationnels. En cas de problème, les logs sont disponibles via kubectl logs ou journalctl -u kubelet.
Pour la haute disponibilité multi-master, déploie un load balancer (HAProxy, Nginx ou MetalLB) devant tes nœuds de contrôle. Cette configuration garantit la continuité de service même en cas de panne d'un master. Ce guide détaillé explique comment configurer un cluster HA complet avec kubeadm.
Enfin, adopte ces bonnes pratiques : active les mises à jour automatiques de sécurité pour le kernel, sauvegarde régulièrement etcd (etcdctl snapshot save), et utilise des NetworkPolicies pour segmenter le trafic inter-pods. Ces mesures renforceront significativement la résilience de ton infrastructure.
Questions fréquentes
- Quelle est la différence entre kubeadm et d'autres outils comme kOps ou Kubespray ?
Kubeadm est l'outil officiel de la CNCF pour créer des clusters Kubernetes rapidement. Il se concentre sur le bootstrapping et la gestion du cycle de vie des nœuds. kOps est plus adapté aux déploiements sur AWS/GCP avec gestion automatique de l'infrastructure, tandis que Kubespray utilise Ansible pour l'installation sur diverses plateformes. Choisis kubeadm pour sa simplicité et sa conformité aux standards officiels.
- Pourquoi containerd est-il recommandé à la place de Docker pour Kubernetes en 2026 ?
Containerd est devenu le runtime recommandé depuis la dépréciation de dockershim par Kubernetes en 2024. Contrairement à Docker qui inclut de nombreuses fonctionnalités non nécessaires à Kubernetes (build d'images, CLI), containerd est un runtime léger spécifiquement conçu pour l'orchestration. Il offre de meilleures performances, une consommation mémoire réduite et une surface d'attaque minimisée.
- Comment ajouter un nouveau nœud worker à un cluster Kubernetes existant ?
Pour ajouter un worker, prépare le nœud en installant containerd, kubeadm et kubelet. Sur le master, génère une commande de jointure avec
kubeadm token create --print-join-command. Exécute cette commande sur le nouveau worker avec sudo. Vérifie ensuite l'état aveckubectl get nodessur le master. Le nœud apparaîtra d'abord comme NotReady, puis passera à Ready une fois le CNI configuré.- Quel plugin CNI choisir entre Calico, Flannel et Weave ?
Calico est le choix privilégié pour la production grâce à ses fonctionnalités avancées de politiques réseau et sa performance. Flannel reste une option simple pour des environnements de test ou de petite taille. Weave offre une excellente résilience réseau mais consomme plus de ressources. Pour un cluster production nécessitant isolation et sécurité, privilégie Calico.
- Comment faire pour réinitialiser complètement un cluster kubeadm ?
Pour réinitialiser un cluster, exécute
sudo kubeadm resetsur tous les nœuds. Cette commande supprime les conteneurs, la configuration etcd et les certificats. Supprime ensuite les répertoires résiduels :sudo rm -rf /etc/cni/net.d /var/lib/etcd /var/lib/kubelet. Sur le master, nettoie également le contexte kubectl aveckubectl config unset current-context. Tu peux alors recommencer l'installation depuis le début.
Tu as maintenant toutes les clés pour installer Kubernetes kubeadm avec succès. De la préparation de l'environnement avec containerd jusqu'à la configuration du CNI et l'ajout des workers, chaque étape est essentielle pour garantir un cluster stable et performant.
N'oublie pas que Kubernetes est un écosystème en constante évolution. Reste informé des mises à jour et applique régulièrement les correctifs de sécurité. Avec cette base solide, tu peux désormais déployer tes applications conteneurisées avec confiance et explorer les possibilités infinies de l'orchestration cloud-native. Bon déploiement !