Eine eigene Mastodon-Instanz im Fediverse

Warum dezentrale soziale Netze wichtig sind — und wie meine Mastodon-Instanz auf Kubernetes aus Web, Streaming, PostgreSQL, Dragonfly und Object-Storage zusammengesetzt ist

Soziale Netze müssen niemandem gehören. Genau das ist der Reiz des Fediverse: ein Verbund unabhängiger Server, die über ein gemeinsames Protokoll miteinander reden, statt sich einer zentralen Plattform unterzuordnen. Auf meinem Lab betreibe ich deshalb unter this-is-fine.social eine eigene Mastodon -Instanz. Dieser Beitrag erklärt, warum mir das wichtig ist — und wie der Stack auf Kubernetes konkret zusammengesetzt ist.

Die Hardware-Basis meines Labs: Turing Pi, RK1 und Talos

Vom Kickstarter-Board mit vier Raspberry-Pi-Modulen zum RK1-Cluster mit NVMe — und warum am Ende Talos Linux darauf läuft

Jedes Lab braucht ein Stück Blech, auf dem es steht. Bei mir ist das ein Turing Pi -Board — ein Mini-ITX-Träger für vier Compute-Module, den ich seinerzeit in der Kickstarter-Kampagne mitfinanziert habe. Die Idee, einen kleinen, lautlosen und stromsparenden Cluster aus austauschbaren Knoten in einem einzigen Gehäuse zu betreiben, hat mich sofort überzeugt. Diese Geschichte handelt davon, wie aus der ersten, etwas naiven Bestückung über ein paar Umwege die heutige Basis von hydra wurde.

Archlinux via PXE von Netboot Image starten

Archlinux mit Hilfe von PXE von einem Netboot Image aus dem Internet starten

Heute hatte ich nach einer BIOS-, bzw. UEFI-Aktualisierung meines Mainboards ein unerwartetes Problem; alle meine EFI-Booteinträge wurden zurückgesetzt. Selbstverständlich hatte ich kein (freies) Medium zur Hand, von dem ich entweder eine Live-Linux Umgebung oder eine EFI-Shell hätte booten können. Glücklicherweise bringen die meisten UEFIs heutzutage eine gute Unterstützung für PXE (Preboot eXecution Environment), bzw. iPXE mit. Hierfür muss dann im BIOS oder UEFI lediglich der Netzwerkstack aktiviert und der richtige Booteintrag ausgewählt werden.

PXE-Server

Mit Pixiecore gibt es eine all-in-one Lösung, um schnell einen PXE-Server bereitzustellen. Für die Installation unter Archlinux steht ein AUR-Paket bereit.

Wichtig: Damit PXE, DHCP und TFTP funktionieren, müssen die unten genannten Ports in der Firewall freigegeben werden!
ProtokollPortBenötigt?
DHCPUDP/67:68Ja
TFTPUDP/69Ja
PXEUDP/4011Ja
HTTPTCP/80Nein

In dem entsprechenden Artikel im Archlinux Wiki steht beschrieben, wie man den quick Parameter verwenden, um direkt den Archlinux Kernel zu laden:

AWS/S3 API kompatibler Object-Storage mit MinIO

Produktionsreifer, verteilter Object-Storage in Kubernetes

MinIO ist ein offenes, AWS/S3 API kompatibles Object-Storage System, welches hervorragend dazu geeignet ist, in Kubernetes betrieben zu werden. Die Installation einer produktionsreifen Konfiguration gestaltet sich äußerst einfach.

Die einzigen beiden Voraussetzungen sind der Zugriff auf einen Kubernetes Cluster und HELM (in Version 3). Sollte der Cluster noch nicht bereit stehen, kannst du natürlich Minikube verwenden oder dir einmal k3s ansehen, damit kann man in wenigen Sekunden einen schlüsselfertigen Single-Node Kubernetes Cluster aufsetzen. Den Kubernetes Paketmanager HELM werde ich für die Installation von MinIO verwenden.

Dienste mit TOR und Onioncat über das Internet freigeben

Mit Hilfe von TOR und Onioncat interne Dienste über das Internet unter Umgehung von NAT verfügbar machen

In einem recht restriktivem Netzwerk benötigte ich eine Möglichkeit, um auf diverse interne Dienste über das Internet zugreifen zu können. Diesen Anlass nahm ich als Gelegenheit um etwas mit TOR und Onioncat herumzuspielen. Mein primäres Ziel war es, sicheren Zugriff auf den internen Mailserver zu gewähren, sodass ich E-Mails abrufen kann ohne direkt mit dem LAN verbunden zu sein.

TOR dient hier lediglich als Transportebene, so ist keine Portweiterleitung im Router notwendig. Onioncat wird als hidden-service bereitgestellt und erzeugt ein Overlay-Netzwerk, welches IPv6 als Protokoll auf Layer 3 verwendet. Die Dienste sind dann später über eine statische IPv6 Adresse via TOR/Onioncat erreichbar.