Einführung
Willkommen bei meinem kleinen Einstieg zum Thema Kubernets / K3s!
Als ich begonnen habe, mich mit Containertechnologie weiterführend zu beschäftigen, fiel es mir durchaus schwer, einen passenden Einstieg zu bekommen. Früher oder Später habe ich es aber dann doch endlich geschafft, eine kleine Webanwendung in meinem Netzwerk zur Verfügung zu stellen – und das möchte ich euch natürlich nicht vorenthalten!
Was haben wir in diesem kurzen Tutorial vor und wie ist es aufgebaut?
Wir wollen einen Cluster mithilfe der Kubernetes-Distro „k3s“ der Firma Rancher installieren. Da diese Opensource ist, und wir mit Ubuntu als Unterbau arbeiten, fallen keine Lizenzkosten an. Wir wollen einen Master, mit zwei Nodes installieren.
Wie sieht es mit Vorwissen aus?
Um diesen Tutorial folgen zu können, solltest du schon grundlegende Kenntnisse um Umgang mit virtuellen Maschinen und Linux haben. Auch ein gewisser Grundstock im Themenbereich Containertechnologie ist vom Vorteil.
Selbstverständlich bildet diese Anleitung nur den Aufbau einer Testumgebung dar. Für einen produktiven Cluster kommen noch viele weitere, vor allem auch sicherheitsrelevante Dinge dazu!
Aber was ist k3s/Kubernetes eigentlich?

Kubernetes ist ein Tool zu „Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen“. Dies geht aus dem Problem hervor, dass Container bei Problemen per Hand (neu-)gestartet werden mussten und auch Updates manuell eingespielt werden musste, was bei steigenden Anzahle von Containeranwendungen zu einem sehr hohen Aufwand für Administratoren führt. Um diese Neustarts automatisiert durchführen zu können und somit die Hochverfügbarkeit (und gleichzeitig auch Skalierbarkeit zu gewährleisten) wurde Kubernetes entwickelt.

Da „Bare-Metal“-Kubernetes an sich relativ gewichtig ist, wird die Distribution k3s der Firma Rancher genutzt. Sie unterscheidet sich in diesem Tutorial nicht von einem normalen K8S-Cluster (bis im Vergleich zu den Hardware Requierements). Ein weiteres Open-Source Produkt von Rancher besteht im RancherOS, welches einen K3S-Master sowie ein Dashboard vorinstalliert hat. Weitere Infos diesbezüglich kannst du hier finden .
Technisch ist ein Kubernetes-Cluster so aufgebaut, dass es immer einen sogenannten „Master“ gibt, welcher die Nodes oder auch Minions steuert, auf denen dann die eigentlichen Anwendungen laufen. Sie werden in dieser Abbildung als „Pods“ bezeichnet.

Voraussetzungen
Systemanforderungen
Es wird vorausgesetzt, dass du insgesamt drei (virtuelle) Maschinen zur Verfügung stehen hast sowie einem Host, von dem aus wir arbeiten. Welches Betriebssystem du auf den Host hast, ist ziemlich egal, da wir über SSH auf die Kubernetes-Maschinen zugreifen. Auf allen diesen Maschinen ist ein UNIX-oides Betriebssystem installiert, für dieses Beispiel werde ich Ubuntu 18.04 nutzen. Root-Rechte müssen vorhanden sein. Genauere Angaben können wir der Tabelle entnehmen, aber hardwaretechnisch würden für unseren Labor-Aufbau auch Raspberry PIs reichen.
Netzwerk | – Port 6443 frei – alle Maschinen im gleichen Netz – statische IP-Adressen (kein DHCP oder die Adressen reservieren) – falls Virtualbox genutzt wird, auf die richtige Netzeinstellungen achten. Mehr Infos zu Vbox können hier gefunden werden |
Hardware | – RAM: Minimum 512 MB (Empfehlung: 1 GB) – CPU: 1 – Speicher; Minimum 200 MB (Empfehlung liegt bei 2 GB +) |
Betriebssystem | – Linux-Distribution (Ubuntu 18.04)- Root-Rechte |
Umgebungsbeschreibung
Meine Laborumgebung sah dabei wie folgt aus:
pepsi-k3s | Master | 192.168.62.14 | Ubuntu |
pepsi-k3a-worker | Worker | 192.168.62.15 | Ubuntu |
pepsi-k3s-worker2 | Worker | 192.168.62.16 | Ubuntu |
Yveltal (MacBook) | Host | n.A | MacOS |
Zusammengefasst kann man zu den Systemanforderungen noch sagen, dass diese stark davon abhängen, was für Applikationen auf dem Cluster am Ende des Tages laufen. Selbstverständlich macht es einen Unterschied, ob ich eine einfach HTML-Seite mit ein wenig JavaScript zur Verfügung stelle oder eine zentrale Anwendung, auf die pro Tag mehrere Millionen Nutzer zugreifen. Da wir in diesem Tutorial aber tatsächlich nur eine einfache Website darstellen, reicht hier das bare minimum an Hardware.
Wichtig ist aber noch, dass die Geräte auf jeden Fall im selben Netzwerk sind und miteinander sprechen können. Einen Internetzugang brauchen sie dabei per se noch nicht, höchstens bei der Installation der Ubuntu-Maschinen.
Bereit für die ersten Konfigurationen? Dann ab zum nächsten Teil!