Kubernetes sur raspberry pi

Xavier Pestel (Xavki)
3 min readDec 14, 2019

Deux univers étendues qui se rencontrent, ça m’a toujours donné envie de le faire.

D’un côté k8s, très inscrit dans le monde professionnel, versé par google à la communauté, ce qui se fait de mieux en matière d’orchestration de conteneur.

De l’autre, un des serveurs les plus populaires, des plus petits et des moins chers du marché. Très souvent utilisé chez les particuliers pour faire de la domotique, par les gamers pour faire notamment du rétro gaming et des milliers d’autres choses tellement il est pratique et universel.

Réunir ces deux là me semblait sympa avant de commencer. Et grâce à la communauté autour de la chaîne xavki ,j’ai pu réussir cet objectif.

1. Commençons par la présentation et les remerciements

Vidéo youtube : PiKub — 0. Kubernetes et Raspberry : le projet et merci !!

2. Le montage physique de ce cluster

Maintenant commençons par un peu de mécanique abordable pour chacun d’entre nous. Très simple il suffit d’assembler :

  • 6 raspberry 4
  • un socle permettant de racker tous les raspberry
  • les dissipateurs thermiques pour éviter la surchauffe (les raspberry 4 chauffent plus que les 3 pour info)
  • le switch 10 ports et les cables RJ45
  • l’alimentation unique pour le tout

Un retour sur ce montage dans cette vidéo.

3. Installation du système d’exploitation et de sa configuration

Plusieurs options étaient possibles :

  • choisir un OS spécifique pour faire tourner des conteneurs comme docker par exemple Hyptio
  • choisir un OS standard Debian
  • choisir un OS standard Raspberry à savoir Raspbian

J’ai choisi la dernière option à savoir Raspbian stretch. Pourquoi la stretch alors que la buster existe ? Tout simplement car kubernetes n’est pas compatible pour le moment avec la dernière version de docker. Pour éviter de taper trop haut je me suis orienté vers une stretch. Le downgrade de version de docker n’étant génial non plus.

Puis, j’ai utilisé balerina etcher pour installer cet OS sur les SD cards (6 fois… la procédure est rodée…). En oubliant pas que l’on peut se passer d’un écran pour installer un raspberry :

  • activer le ssh : pour cela ajouter un fichier nommé “ssh” vide à la racine de la partition /boot
  • configurer l’ip : pour cela modifier le fichier dans /rootfs/etc/dhcpcd.conf avec l’ajout de :

interface eth0

static ip_address=192.168.1.20

static routers=192.168.1.254

static domain_name_servers=192.168.1.254

en renseignant l’ip de la machine et l’ip de votre routeur.

Tout cela en vidéo ici

4. Installation du cluster kubernetes avec ansible

Maintenant il ne reste plus qu’ à installer k8s soit à la main… soit de manière orchestrée avec notre ami ansible. Et comme les raspberry adorent qu’on leur parle en python j’ai choisi la deuxième option.

J’ai donc créé un playbook pour l’occasion et les rôles nécessaires. Et finalement ce n’est pas la partie la plus désagréable.

Voici d’ailleurs le playbook en question que j’ai amélioré un peu pour créer un rôle que j’ai poussé ici sur galaxy.

Vidéo : orchestration de kubernetes avec ansible

5. Conclusion

En guise de conclusion, je tiens à remercier toutes les personnes qui ont pu m’aider dans ce projet. Je remercie aussi François Mocq du site framboise314 pour avoir relayé ce projet auprès de la communauté raspberry.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Xavier Pestel (Xavki)
Xavier Pestel (Xavki)

Written by Xavier Pestel (Xavki)

Microservices architecture and opensource. I’m maintainer of xavki https://youtube.com/c/xavki-linux about opensource. My blog : https://xavki.blog/

No responses yet

Write a response