Einfacher Einstieg in Kubernetes Container-Orchestrierung mit Rancher

Autor / Redakteur: Mirco Lang / Stephan Augsten |

Der Weg in die Container-Welt führt durch beängstigend lange Docker-Canyons und direkt in das nicht minder Furcht einflößende Kubernetes-Tal. Muss aber nicht sein, denn ein freundlicher Rancher bietet Hilfe an. Aber was genau ist Rancher und wie geht es los?

Anbieter zum Thema

Ein lokaler Kubernetes-Cluster mit Ressourcen dreier Nodes.
Ein lokaler Kubernetes-Cluster mit Ressourcen dreier Nodes.
(Bild: Lang / Rancher)

Das Stichwort Rancher taucht sein ein, zwei Jahren immer häufiger auf und ist aus der Container-Welt nicht mehr wegzudenken. Dass die Software irgendetwas mit Docker und Kubernetes zu tun hat, ist schnell klar, aber nicht unbedingt, was Rancher nun genau macht.

Zumindest für Container-Einsteiger ist es schon eine Hürde, da es bei komplexer, professioneller Software gerne zu einer Mischung aus Technik- und Business-Sprech kommt und allerlei Kenntnisse vorausgesetzt werden. Wenn man es etwas vereinfacht, lässt sich der immense Nutzen der Open-Source-Software aber recht schnell erläutern.

Der Einstieg fällt mit ein paar grundlegenden Tipps ebenfalls recht leicht, wie Sie weiter unten sehen werden. Zunächst aber sollte klar werden, in welcher Beziehung Rancher zu Kubernetes und Docker steht, was die Rancher-Grundbegriffe bedeuten und was das fertig aufgesetzte System zu leisten vermag.

Docker, Kubernetes, Rancher

Ganz unten an der Basis beginnt alles mit Docker. Das System ermöglicht Container, im Grunde stark reduzierte virtuelle Maschinen für (tendenziell) einzelne Anwendungen. Container benötigen relativ wenige Systemressourcen, lassen sich problemlos sichern, ersetzen, zurücksetzen etc. und vor allem auch in großer Anzahl betrieben.

Container vereinfachen den Betrieb von Anwendungen, sind aber schnell so zahlreich, dass sie wiederum selbst ein Verwaltungswerkzeug benötigen. An dieser Stelle springt Kubernetes ein und übernimmt die Container-Orchestrierung. Auch Kubernetes ist Open Source und hilft beim kompletten Container-Workflow von der Erstellung über die Verwaltung und Skalierung bis hin zur Bereitstellung.

Statt einzelner Container(-hosts) können Sie damit Cluster nutzen, um Ausfallsicherheit und Performance zu verbessern. Dank Automatisierung müssen Sie sich um Dinge wie Aktualisierungen oder die Verteilung von Aufgaben kaum noch Sorgen machen. Kubernetes vereinfacht also den Umgang mit einer größeren Container- und Rechnerlandschaft – ist allerdings selbst nicht ganz trivial, zumal vertiefte Kenntnisse in Container- und Kubernetes-Struktur benötigt werden.

Ein lokaler Cluster mit Ressourcen dreier Nodes.
Ein lokaler Cluster mit Ressourcen dreier Nodes.
(Bild: Lang / Rancher)

Hier wiederum setzt Rancher an, vordergründig eine „GUI für Kubernetes“ – was der Sache zwar technisch nicht gerecht wird, aus Anwendersicht aber Sinn ergibt. Über Rancher lassen sich „Rechner“ zu einem Cluster zusammenfassen und Anwendungen aufsetzen – was im Hintergrund per Docker und Kubernetes geschieht.

Rancher

Für den Betrieb von Rancher muss Docker bereits vorhanden sein, Kubernetes wird von Rancher selbst mit eingerichtet. Dabei handelt es sich jedoch um eine eigenständige Kubernetes-Distribution unter dem Namen K3s, abgeleitet vom Kubernetes-Kürzel K8s. Der Name deutet es an: K3s ist leichtgewichtig und entsprechend zum Beispiel für IoT-Projekte gedacht.

In der Praxis ist der Aufbau von Rancher eigentlich relativ simpel: Zum einen haben Sie den Rancher-Server, der die API, Werkzeuge und die Nutzeroberfläche im Browser zur Verfügung stellt. Dazu gesellt sich dann der Kubernetes-Cluster. Der Cluster wiederum besteht aus einzelnen Nodes.

Nodes können virtuelle Maschinen sein, Instanzen bei einem Cloud-Anbieter oder auch ganz profan echte Rechner wie Desktop-PC oder Raspberry Pi. Für den Raspi gibt es sogar eine eigene Distribution von RancherOS, einem schlanken Linux für den Einsatz auf Rancher-Nodes. Mit solchen Bare-Metal-Nodes lässt sich Rancher auch daheim relativ simpel aufsetzen und testen.

Auf jedem einzelnen Node muss (manuell) Docker installiert werden. Anschließend wird ein von der Rancher-GUI zur Verfügung gestellter Code („docker run ...“) im Terminal ausgeführt, der diesen Node in das Cluster aufnimmt. Jeder Node kann dabei (bis zu) drei Rollen einnehmen:

  • etcd-Nodes lassen eine etcd-Instanz laufen, die als zentrale Datenbank sämtliche Informationen über den Cluster und seine Bestandteile verwaltet.
  • Control-Plane-Nodes stellen Kubernetes' API-Server, Scheduler und Controller Manager bereit, die die Routineaufgaben der Verwaltung übernehmen. Reine Control-Plane-Nodes sind zustandslos, da Ihre Daten in den etcd-Nodes liegen.
  • Drittens gibt es die Worker-Nodes: Hier laufen die so genannten Kubeletes, kleine Programme (Agenten), die den Status des Nodes überwachen, sowie die Workloads. Workloads sind hier hier Container und Pods.

Container dürften hier klar sein: Wenn Sie in Rancher eine App aufsetzen, beispielsweise ein Wordpress, läuft diese natürlich als Container – hier ist also auch in Rancher schlicht ein normaler Docker-Container gemeint. Pods wiederum sind „logische Hosts“, wie Kubernetes es ausdrückt. In der traditionellen IT wären schlicht einzelne Rechner, sprich etwa eine virtuelle Maschine oder ein Raspberry Pi, ein solcher Host.

Wie in der realen Welt können auf einem Pod auch mehrere Container und somit Anwendungen laufen. Container/Anwendungen, die auf demselben Pod laufen, teilen sich zudem einen Namensraum, Netzwerkadressbereich und Volumes – ähnlich, wie man es auch von mehreren Anwendungen in ein und derselben virtuellen Maschine kennt. Pods sind wie Container etwas Flüchtiges: Der Anwender legt Cluster und Apps fest, das Anlegen, Schließen, Löschen, Aktualisieren, Ersetzen von Pods und Containern übernimmt Rancher.

Im Grunde ist Rancher genau das: Die vollständige Automatisierung der Clusterung von Rechnern und der Bereitstellung von Apps über Container – mit Kubernetes oder Docker müssen Sie nicht mehr direkt interagieren. Einige Anwendungen bekommen Sie direkt als Container aus dem Rancher Store in der Rancher-GUI – bis zur Bereitstellung sind es dann lediglich zwei, drei Klicks.

Vereinfachungen

Rancher ist also tatsächlich eine enorme Vereinfachung. Mit dem Quick Start von Rancher können Sie in vielleicht einer halben Stunde ein Cluster aus Server und zwei Nodes mit einem laufenden Wordpress aufsetzen – versuchen Sie das mal mit Docker und Kubernetes von Hand! Und das vielleicht Beste: Sowohl Rancher selbst als auch die Node-Software läuft jeweils als Docker-Container!

Die zweite Vereinfachung liegt, wie oben angedeutet, in dieser Rancher-Beschreibung. Natürlich kann Rancher noch deutlich mehr und ist produktiv auch nicht ganz trivial zu nutzen. Beispielsweise kann Rancher auf andere Orchestrierungswerkzeuge als Kubernetes zugreifen, auch Docker-Alternativen sind möglich.

Mit der Rancher Kubernetes Enginge (RKE) gibt es ein Kommandozeilen-Tool für das Cluster-Management, es stehen umfangreiche API-Möglichkeiten zur Verfügung und so weiter. Das beste Gefühl für die Funktionsweise von Rancher bekommen Sie aber durch schlichtes Testen.

Rancher testen

Für lokale Testzwecke empfiehlt Rancher die Komplettinstallation auf nur einem Rechner, interessanter ist aber das Aufsetzen einer „normalen“ Struktur mit Server und mindestens zwei Nodes. In diesem Szenario bräuchten Sie also drei Nodes, beispielsweise den Desktop-Rechner als Rancher-Server und darauf zwei virtuelle Maschinen (achten Sie darauf, dass diese VMs eigene IP-Adressen bekommen und auf den Rancher-Server zugreifen können).

Grundsätzlich können Sie dabei einfach den Quick Start Guide von Rancher durchführen – einfacher lässt es sich nicht beschreiben. Allerdings sind ein paar Tipps hilfreich – die Hilfe-Anfragen in Rancher-Foren sind gut gefüllt. Den Code für die Nodes bekommen Sie direkt bei der Einrichtung des Clusters in Rancher angezeigt – achten Sie darauf hier alle drei Node-Rollen (etcd, Control Plane, Worker) auszuwählen, da der Docker-run-Code zum Kopieren entsprechend angepasst wird.

Hello-World-Sample von Rancher.
Hello-World-Sample von Rancher.
(Bild: Lang / Rancher)

Nach dem Aufsetzen des Clusters fahren Sie über den Link „Creating Deployments” unten auf der Seite fort und wählen dort die Workload-Option Ingress. Das Deployment setzt hier eine simple Hallo-Welt-Webseite auf, die zeigt, dass das Cluster einwandfrei funktioniert.

So sollte das Ergebnis des Quick Start Guides von Rancher aussehen.

Ganz wichtig: Rancher arbeitet mit dem Online-Dienst xip.io, der Wildcard-Domains ermöglicht. Eine ausgesetzte Anwendung, hier die Hello-World-Website, ist damit über eine lokale Domain wie „http://myingress1.default.192.168.178.116.xip.io/“ verfügbar – dank xip.io zeigt diese URL dann auf die Anwendung, die über den Ingress „myingress1“ im Namensraum „default“ bereitgestellt wird.

Das funktioniert aber zum Beispiel nicht hinter Fritzboxen. Diese haben nämlich einen DNS-Rebind-Schutz, der eben diese Umleitung unterbindet. In diesem Fall können Sie einfach die Ausnahme „xip.io“ unter „Heimnetz/Netzwerk/Netzwerkeinstellungen/DNS-Rebind-Schutz“ setzen, bei anderer Netzwerk-Hardware analog.

Ebenfalls wichtig: Geduld. Die initiale Einrichtung des Clusters dauert einige Zeit (Download von Images, Abgleich der Datenbestände) und währenddessen rattern Meldungen durch die Rancher-Oberfläche, die bisweilen eher nach Fehler- denn Statusmeldungen aussehen. Bisweilen genügt es tatsächlich, einfach ein paar Minuten zu warten. Sollte die Schmerzgrenze von zehn Minuten erreicht sein und Rancher immer und immer wieder dieselben Meldungen ausgeben, sind Sie vermutlich in einer Endlosschleife gelandet – gerne abhängig vom verwendeten Node.

Hier war es beispielsweise nicht möglich, die Kombination Raspberry Pi 3B+ mit RancherOS ins Cluster einzubinden. Versuchen Sie es in solchen Fällen am besten mit einem anderen Rechner, für eine Testumgebung sollten Sie es mit dem Troubleshooting-Aufwand nicht übertreiben.

Ein letzter wichtiger Tipp: Sollte etwas schieflaufen und Sie wollen einen Node neu aufsetzen, müssen Sie diesen zunächst säubern. Beim Entfernen eines aktiven Nodes aus dem Cluster via Rancher-GUI geschieht alles Nötige automatisch, bei inaktiven/defekten Nodes müssen Sie hingegen allerlei Verzeichnisse und Images von Hand bereinigen, wie es die Rancher-Dokumentation beschreibt.

(ID:46263913)