TL;DR
kubeadm automatise l’initialisation d’un cluster Kubernetes sans masquer toute la mecanique. Il installe et configure le control plane, genere les certificats, cree les manifests statiques et fournit les commandes de join. Il reste cependant a installer le runtime, kubelet, kubectl et un plugin CNI.
La video de reference
Video: https://www.youtube.com/watch?v=lbzO26-D-P0
Cette video ouvre une sequence sur l’installation de Kubernetes avec kubeadm.
Pourquoi kubeadm ?
kubeadm est souvent utilise pour apprendre Kubernetes car il expose les briques importantes: runtime, kubelet, API Server, etcd, certificats, CNI, tokens et join des noeuds.
Contrairement a une distribution tout-en-un, il force a comprendre les pre-requis systeme et les etapes d’initialisation.
Ce que kubeadm fait
kubeadm peut:
- initialiser un control plane;
- generer les certificats;
- creer les manifests statiques des composants;
- fournir une commande de join;
- gerer certaines phases d’upgrade;
- verifier des pre-requis avec des preflight checks.
Ce que kubeadm ne fait pas seul
kubeadm ne prepare pas tout le systeme. Il faut encore:
- installer un runtime CRI comme containerd;
- installer kubelet et kubectl;
- desactiver ou configurer le swap selon les recommandations;
- configurer les modules kernel et sysctl;
- installer un CNI apres l’init;
- gerer la haute disponibilite si necessaire.
Pre-requis typiques
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
Ces reglages permettent au reseau Kubernetes et au forwarding de fonctionner correctement.
Packages principaux
Sur chaque noeud, on retrouve generalement:
kubelet
kubeadm
kubectl
containerd
Le kubelet tourne comme service systeme. kubeadm pilote l’initialisation. kubectl est le client d’administration.
Etapes globales
Une installation kubeadm suit souvent ce chemin:
- Preparer tous les noeuds.
- Installer le runtime et les outils Kubernetes.
- Initialiser le premier control plane avec
kubeadm init. - Configurer le kubeconfig admin.
- Installer un CNI.
- Joindre les workers avec
kubeadm join. - Verifier les noeuds et les pods systeme.
Initialisation type
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
Le CIDR depend du CNI choisi. Il ne faut pas copier cette valeur sans verifier la documentation du plugin reseau.
Apres kubeadm init
Juste apres l’init, le noeud peut etre NotReady. C’est normal tant que le CNI n’est pas installe.
kubectl get nodes
kubectl get pods -A
Les pods CoreDNS attendent souvent le reseau pour devenir Running.
Liens utiles
- Video: https://www.youtube.com/watch?v=lbzO26-D-P0
- Playlist Kubernetes v2: https://www.youtube.com/playlist?list=PLn6POgpklwWo6wiy2G3SjBubF6zXjksap
- Depot Xavki Kubernetes v2: https://gitlab.com/xavki/tutorials-kubernetes-v2
- kubeadm: https://kubernetes.io/docs/reference/setup-tools/kubeadm/
- Creer un cluster avec kubeadm: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
FAQ
kubeadm est-il une distribution Kubernetes ?
Non. C’est un outil d’installation et de lifecycle pour un cluster Kubernetes.
Pourquoi le noeud est NotReady apres init ?
Le plus souvent parce que le CNI n’est pas encore installe.
kubeadm installe-t-il containerd ?
Non. Le runtime doit etre installe et configure separement.
Erreurs frequentes
- Oublier le CNI apres
kubeadm init. - Utiliser un CIDR incompatible avec le plugin reseau.
- Laisser le swap actif sans configuration adaptee.
- Ne pas sauvegarder la commande de join.
Pour pratiquer
Montez un lab a une VM control plane et une VM worker. Faites l’init, installez le CNI, puis joignez le worker. Notez chaque etape dans un script.
Notions et definitions
- Control plane: ensemble des composants qui exposent l’API et prennent les decisions.
- Worker node: machine qui execute les pods applicatifs.
- Runtime et kubelet: briques locales responsables du lancement et du suivi des conteneurs.
Ces definitions donnent le vocabulaire minimal pour suivre l’article sans reduire Kubernetes a une simple commande. Chaque notion doit etre reliee a un objet visible avec kubectl ou a un composant du cluster.
Exemple concret
Dans un cluster kubeadm, l’API Server recoit les manifests, le scheduler choisit un noeud, puis le kubelet demande au runtime de lancer les conteneurs.
Cet exemple sert de fil conducteur: il montre quel probleme operationnel Kubernetes cherche a resoudre et quelle ressource permet de le formaliser.
How-to rapide
- Verifier les prerequis systeme: swap, modules kernel, runtime, reseau.
- Initialiser ou rejoindre le cluster selon le role du noeud.
- Installer un CNI avant d’attendre des pods applicatifs fonctionnels.
- Valider CoreDNS, nodes Ready et un deploiement de test.
Le how-to est volontairement court: l’idee est d’obtenir un resultat observable, puis d’utiliser les commandes de verification pour comprendre ce qui s’est passe.
Approfondir cet article
Cet episode doit surtout permettre de maitriser les composants d’un cluster, leur installation et les responsabilites entre control plane, workers et runtime. L’objectif n’est pas seulement de refaire les commandes, mais de comprendre quel objet Kubernetes est cree, quel composant le prend en charge et comment verifier le resultat.
Questions a se poser
- Quel est l’etat desire exprime dans Kubernetes ?
- Quel composant observe cet etat et tente de le reconciler ?
- Quels symptomes montrent que l’objet est cree mais pas encore operationnel ?
- Quelle commande donne l’information la plus fiable pour diagnostiquer ?
Commandes de verification
kubectl get nodes -o widekubectl -n kube-system get pods -o widesudo crictl psousudo systemctl status containerd kubeletsur les noeuds
Ces commandes ne sont pas a apprendre par coeur. Elles servent a construire un reflexe: partir de l’objet Kubernetes, lire son etat, puis descendre vers les pods, les events, les logs ou le noeud uniquement si c’est necessaire.
Points de vigilance
- confondre installation reussie et cluster exploitable dans la duree
- ne pas verifier DNS, CNI, certificats et horloge apres l’installation
- oublier que la haute disponibilite depend aussi du load balancer et du reseau
Exercice conseille
Preparez une checklist post-installation: nodes Ready, CoreDNS fonctionnel, CNI actif, pod de test joignable et redemarrage d’un composant kube-system observe.
Pour valider la comprehension, gardez une trace courte: manifest utilise, commandes lancees, resultat attendu, resultat observe et correction appliquee. Cette methode rend les episodes suivants beaucoup plus faciles a enchainer.
Lien interne conseille
Pour poursuivre la progression, consultez aussi Kubernetes 044 – What is containerd ? kubeadm.
Conclusion
kubeadm est un excellent outil pour apprendre l’installation Kubernetes. Il automatise les parties repetitives tout en laissant visibles les choix essentiels.