Montage d'un cluster Kubernetes avec Raspberry Pi (partie III)

Cette série est restée incomplète et je n’ai pour l’instant pas prévu de la poursuivre. Malgré tout, le contenu publié peut être utile.
Ceci est la troisième partie d’une série d’articles dans laquelle j’explique comment j’ai monté un cluster Kubernetes en utilisant des Raspberry Pi. Ici je montre comment j’installe Kubernetes en utilisant k3s.
| Partie | Titre |
|---|---|
| P01 | Hardware |
| P02 | Système d’exploitation et Docker |
| P03 | Cluster K3S |
| P04 | Consommation électrique |
K3s
K3s est une distribution Kubernetes certifiée, conçue pour le monde de l’IoT et de l’Edge Computing. K3s a été optimisé pour ARM (ARM64 et ARMv7), et c’est ce qui m’a poussé à choisir cette distribution pour installer Kubernetes sur mon cluster de Raspberry Pi. Les dépendances ont été réduites au minimum, ce qui permet de distribuer K3s sous la forme d’un seul binaire de moins de 40 MB. Cette réduction des dépendances simplifie également considérablement le processus d’installation.
Installation
L’installation est très simple, car l’équipe de K3s fournit un playbook Ansible pour l’automatiser. Je me suis basé sur ce playbook et j’y ai apporté quelques petites adaptations/améliorations.
La première chose que j’ai faite a été d’adapter le fichier d’inventaire aux besoins du playbook. Pour cela, j’ai défini les groupes suivants :
k3s_master: inclut le nœud maîtrek3s_node: inclut les nœuds esclavesk3s_cluster: inclut tous les membres du cluster
[k3s_master:children]
rpicluster01
[k3s_node:children]
rpicluster02
rpicluster03
rpicluster04
rpicluster05
[k3s_cluster:children]
k3s_master
k3s_node
(le fichier complet est disponible ici)
Voici ensuite le playbook d’installation :
- hosts: k3s_cluster
gather_facts: true
become: true
roles:
- role: prereq
- role: download
- role: ubuntu
- hosts: k3s_master
become: true
roles:
- role: k3s/master
- hosts: k3s_node
become: true
roles:
- role: k3s/node
Comme on peut le voir, il repose sur l’utilisation de rôles. Trois rôles de préparation (prereq, download et ubuntu) sont exécutés sur tous les membres du cluster. Ces rôles activent certaines configurations nécessaires du système d’exploitation et téléchargent le binaire approprié en fonction de l’architecture.
Il existe également un rôle exécuté sur le nœud maître et un autre sur les nœuds esclaves. Ce sont eux qui créent réellement le cluster K3s.
(le playbook complet est disponible ici)
Conclusion
Grâce à l’équipe de développement de K3s, qui fournit un playbook Ansible, il est possible de créer un cluster Kubernetes de manière très simple.

Je suis ingénieur en informatique avec plus de 15 ans d’expérience, au cours desquels j’ai travaillé dans des environnements très variés et occupé différents rôles tout au long du cycle de vie du développement. Cette expérience m’a permis d’acquérir une vision globale du secteur et de m’adapter facilement à divers contextes techniques et organisationnels.
J’ai travaillé pour de grandes sociétés de conseil multinationales, participant à des projets de nature diverse et collaborant avec des équipes réparties dans plusieurs pays. J’ai également vécu l’expérience de travailler dans une start-up à ses débuts, ce qui m’a donné l’opportunité de contribuer à la création d’un produit depuis zéro et de découvrir de près les défis du monde entrepreneurial.
Je suis passionné par la programmation et je maintiens une attitude d’apprentissage continu. Pour moi, l’essentiel n’est pas de maîtriser un langage ou un framework particulier, mais la capacité à apprendre, évoluer et comprendre les problèmes en profondeur afin de proposer des solutions solides. Dans ce parcours d’apprentissage, j’ai exploré des domaines tels que la Data Science et le Big Data, en suivant un master qui illustre mon intérêt pour l’élargissement de mes horizons et la compréhension de nouvelles perspectives technologiques.