Installer Kubernetes simplement avec Kubeadm
Auteur: Fabrice JAMMES (LinkedIn). Date: Apr 22, 2024 · 10 min de lecture
Cet article explique comment installer Kubernetes avec kubeadm, l’installeur officiel de Kubernetes, en quelques lignes. Il s’inspire de la documentation officielle, tout en la déclinant pour Ubuntu et en la simplifiant.
Cette documentation a été validé pour Kubernetes 1.31+.
Pré-requis côté infrastructure
- Une ou plusieurs machines sous Ubuntu LTS, avec accès administrateur (
sudo) - 2 Go ou plus de RAM par machine
- 2 processeurs ou plus sur le noeud maître
- Connectivité réseau complète entre toutes les machines du cluster
La documentation ‘size-of-master-and-master-components’ définit la façon de dimensionner vos nœuds maîtres en fonction du nombre total de nœuds de votre cluster Kubernetes.
Pré-requis côté système
Installer containerd
Pour information, containerd est un runtime léger pour conteneurs Linux, c’est un projet fiable et validé par la Cloud-Native Computing Foundation, comme vous pouvez le voir sur la page web du landscape CNCF.
L’installation de containerd est à réaliser sur l’ensemble de vos machines. En effet, c’est la brique de base qui permettra à Kubernetes de gérer les conteneurs. L’idéal est de copier-coller le code ci-dessous dans un script et de l’exécuter sur chaque machine (chmod +x <nomfichier>).
Pour plus d’informations concernant l’installation de containerd, tous les détails sont dans la documentation officielle.
Installer kubeadm et ses acolytes: kubelet et kubectl
kubeadmest l’installeur officiel de Kubernetes, il doit être exécuté en tant qu’administrateur sur chacun des noeuds de votre cluster Kubernetes.kubeletest le démon en charge d’exécuter et de gérer les conteneurs sur chacun des noeuds pilotés par Kubernetes. Il doit être disponible sur l’ensemble des noeuds du cluster, et également les noeuds maîtres car il gère également les conteneurs en charge des composant système de Kubernetes. Il s’appuie sur la spécification CRI (Container Runtime Interface), pour communiquer avec le moteur d’exécution local des conteneurs, dans notre examplecontainerd.kubectlest le client Kubernetes, il suffit de l’installer sur la machine qui vous permettra de piloter votre cluster Kubernetes.
Comme précédemment, nous vous recommandons de copier-coller le code ci-dessous dans un script et de l’exécuter sur chacune des machines.
Veuillez noter que le script bloque les mises à jour de kubeadm, kubectl, et kubelet afin de prévenir toute mise à jour intempestive de Kubernetes, par exemple suite à des mises à jour de sécurité avec les commandes apt-get.
Créer le cluster Kubernetes
Sur votre noeud maître, lancer la commande suivante:
Voici ce que vous allez voir apparaître sur votre console, dans les dernières lignes de la sortie standard de la commande:
Trois instructions très importantes sont présentes ici:
- la manière de configurer
kubectl, le client Kubernetes. Dans notre exemple nous utiliserons comme machine cliente le noeud maître Kubernetes, sur lequel nous lancerons donc les commandes ci-dessous:
- l’installation d’un plugin réseau, nous choisirons ici un des plus populaire:
cilium. Il suffit de lancer la commande ci-dessous sur votre client Kubernetes, que nous venons de configurer. A noter que dans notre exemple, le client est également le maître Kubernetes:
- la commande à exécuter sur tous vos autres noeuds afin qu’ils rejoignent le cluster Kubernetes:
<control-plane-host>:<control-plane-port> contient le nom DNS ou l’IP et le port du maître Kubernetes. <token> est le jeton, dont la durée de vie est limitée, qui permet au noeud courant de s’identifier auprès du master. Enfin, <hash> permet au noeud courant de s’assurer de l’authenticité du maître.
Remarque
Il n’est pas recommandé d’exécuter les containers applicatifs sur les nœuds maîtres Kubernetes pour des raisons de sécurité. C’est pourquoi nous vous recommandons d’utiliser des nœuds maîtres dédiés à l’éxécution des composant système Kubernetes.
Vérifier que tout fonctionne
La commande suivante permet de vérifier que votre cluster Kubernetes est opérationnel:
La commande ci-dessous permet de lister l’ensemble de vos noeuds:
Finalement, l’installation de Kubernetes avec kubeadm est plutôt simple, n’est-ce pas :-).
Supprimer le cluster
La documentation officielle détaille toutes les opérations nécessaires pour supprimer votre cluster. Si vous avez créé vos machines dans un Cloud, une solution équivalente et beaucoup plus simple est bien entendu de les supprimer, puis des les recréer dans leur état initial.
Automatiser l’installation
Voici un exemple de script permettant d’automatiser ce processus: https://github.com/k8s-school/k8s-advanced/tree/master/labs/0_kubeadm.