🛠 Cluster Kubernetes : quatre CM3+ sur une Turing Pi

Raspberry Pi Compute Module 3+ (CM3+ / CM3+ Lite) · avance · Schéma : une carte Turing Pi v1 avec quatre modules CM3+ insérés dans leurs connecteurs SODIMM, un câble Ethernet par nœud et un module d'alimentation, le tout piloté en Kubernetes (K3s).

Objectifs

Le format SODIMM du CM3+ a permis une famille de cartes clusters : la Turing Pi v1 accueille quatre modules Compute Module (dont le CM3+) avec Ethernet, alimentation redondante et contrôle d'alimentation par nœud. Le build de référence est celui de Jeff Geerling (dépôt geerlingguy/turing-pi-cluster, qui liste explicitement « Raspberry Pi Compute Module 3+ et HypriotOS ») : quatre nœuds K3s. Ce tutoriel reprend la démarche : flash HypriotOS, amorçage des quatre nœuds, installation K3s, déploiement multi-nœuds.

Matériel

Code complet

# 1. Flasher HypriotOS (images Pi 3 compatibles CM3+) sur les 4 eMMC via usbboot
#    (un module à la fois en device-boot, comme pour tout CM à eMMC)
export HIPRIVE=192.168.1.0/24
flash --hostname node1 --addr 192.168.1.11 hypriotos-rpi-v1.8.0.img.zip

# 2. Installer K3s sur le serveur (node1), les agents rejoignent via token
#    Sur node1 :
curl -sfL https://get.k3s.io | sh -s - server --write-kubeconfig-mode 644
cat /var/lib/rancher/k3s/server/node-token

# 3. Sur node2-4 : rejoindre le cluster
curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.11:6443 \
  K3S_TOKEN=<token> sh -

# 4. Vérifier et déployer
kubectl get nodes -o wide
kubectl create deployment nginx --image=nginx --replicas=4
kubectl get pods -o wide    # les 4 pods doivent se répartir sur les 4 nœuds

Vérification attendue

kubectl get nodes liste 4 nœuds Ready (1 serveur + 3 agents), chacun avec son IP statique HypriotOS. Le déploiement nginx à 4 réplicas se répartit sur les quatre modules — preuve que le cluster fonctionne. La Turing Pi permet d'éteindre un nœud via son contrôle d'alimentation : le pod redémarre ailleurs en quelques secondes.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels