Aufbau Eines Kubernetes ML Cluster Auf SBCs - Teil 0

Ich will zu Hause ein bisschen Kubernetes ML-Ops (machine learning operations) üben, nur so aus Spaß. Da ich so viel Kram rumliegen habe, insbesondere SBCs (single board computers) und es so viele tolle open source Software gibt, sollte das eigentlich möglich sein.

Einige Leute haben schon ähnliche Projekte durchgeführt, aber dies wird keine Schritt-für-Schritt Anleitung, eher eine Serie an Artikeln für meine eigene Dokumentation, und eine Sammlung an “lessons learned”.

Hardware

Mal sehen was wir so haben:

Ein BOM (bill of materials) gibt es nicht, und auch keine Kostenaufstellung, weil die meisten Teile schon ewig rumliegen, und von diversen anderen Projekten wiederverwendet werden. Die einzigen Teile die ich spezifisch für dieses Projekt gekauft habe sind die beiden Jetson 2GB Developer Kits, weil die anderen beiden so einsamen waren und im Gehäuse noch Platz war.

Entscheidungen

Ich werde “Vanille” Kubernetes und kubeadm für die Bereitstellung nutzen. Nicht die beste Wahl, weil K3s besser auf SBCs läuft und leichter zu installieren ist. Es gibt auch Talos OS , anscheinend sehr performant, und viele andere Systeme für die automatisiere Installation wie Typhoon oder kubespray . Aber dies ist mein persönliches Lernprojekt, also wähle ich Systeme die ich entweder kenne oder lernen will/muss:

  • Fedora CoreOS für die Nodes, weil das ähnlich ist wie RHCOS auf Openshift, und ich unterrichte Openshift. Außerdem gefällt mir die Idee eines unveränderlichen Betriebsystems. Angeblich läuft es auch auf dme Raspberry Pi 4, mal sehen wie das wird. Die Jetsons laufen nur auf Ubuntu, wegen nVidias proprietären Treibern.
  • Ansible für die Automation, so viel wie möglich. Weil ich Ansible unterrichte und liebe.
  • Weave Net für die Netzwerkschicht. Einfach weil.

Planung und Zeitrahmen

Es gibt keinen Zeitrahmen, dies ist ein Hobbyprojekt. Aber ich habe einen groben Vorgehensplan:

  1. Die Master Knoten zum Laufen kriegen. Also ein FCOS Bereitstellungssystem auf dem Masterrechner aufsetzen, und versuchen alles so weit wie möglich zu automatisieren.
  2. Einen einfachen 3-Knoten k8s cluster aufsetzen, mit nur der “control plane”
  3. Die Jetsons zum Laufen bringen. Das mitgelieferte Betriebsystem (L4T, basierend auf uraltem Ubuntu) ist völlig Kaputt, also stehen da einige Herausforderungen bevor.
  4. Fedora CoreOS auf den Pis installieren. Noch keine Ahnung wie das wird.
  5. Alles automatisieren.

Die Zukunft

Sobald der Cluster als solches läuft (hoffentlich irgendwann) kann ich anfangen mit Automation und GitOps im Machine Learning Umfeld zu spielen. Das Jahrzehnt ist noch lang…


Hallo Welt
Aufbau Eines Kubernetes ML Cluster Auf SBCs - Teil 1