Mit OpenShift gelangt die Cloud direkt in Ihr Wohnzimmer! Auch wenn die Cloud ein abstrakter Begriff ist und nicht ernsthaft zur Bewässerung ihrer Zimmerpflanzen beiträgt: Mit einer verregneten Gemütslage ist während der Installation allemal zu rechnen.
Damit Sie ein ungefähres Gefühl für das Prozedere bekommen, folgt eine kurze Beschreibung des Vorgehens. Eine exakte Schritt für Schritt Anleitung mit den benötigen Kommandos finden Sie auf der Homepage von OpenShift. Für eine erfolgreiche Installation sind brauchbare Linux-Kenntnisse von Vorteil. Die Installation erfolgt entweder als Root oder als User mit sudo Rechten (ohne Passwort).
An dieser Stelle treten wir ein paar Schritte zurück und gehen auf die „inneren Bestandteile“ von OpenShift ein. Wozu benötigen wir das überhaupt? Die Software hilft dabei, mehrere im Internet verteilte Anwendungen transparent zu vernetzen um der modernen Microservice Architektur den notwendigen „Nährboden“ zur Verfügung zu stellen. Hierbei kommen zweierlei Helfer zum Einsatz: Docker und Kubernetes. Docker ist ein Tool für die Erstellung von Laufzeitumgebungen (Container). Diese Umgebung spricht für sich – ist isoliert und enthält die notwendige Software und Abhängigkeiten in einer wiederholbaren, geschlossenen und verteilbaren Art- und Weise. Kubernetes hingegen ist sozusagen der „Wasserträger“ – Verteilt und orchestriert die Container in eigenen Strukturen (Pods) auf den Nodes. OpenShift vereinfacht die Bedienung der beiden Tools durch das Hinzufügen einer API mit einer höheren Abstraktionsebene.
Ein Cluster besteht aus mindestens zwei Hosts. Der Master ist die Schaltzentrale des Clusters und delegiert die übrigen Hosts, Nodes genannt. Der Master selbst ist ebenfalls ein Node, ein spezieller Node. Aufgrund dieser Tatsache sollte der Master unbedingt auf den stärksten Host. Ausfallsicher in Hinblick auf HA ist dieser Cluster nicht – Fällt der Master aus treibt der zweite Knoten hilflos umher wie Totholz auf einem reißenden Strom. Hierfür gibt es Vorkehrungen, wie zum Beispiel auch den Master verteilen.
Zunächst müssen auf allen Hosts Vorkehrungen getroffen und SELinux angepasst werden. Alle Hosts sollten über DNS auflösbar sein, sofern nicht ausschließlich mit IP-Adressen gearbeitet wird. Diesbezüglich am Besten den Anleitungen folgen. Anschließend sicherstellen, dass ausgehend vom Master alle Nodes (inklusive sich selbst) ohne Passwort über ssh erreichbar sind (Stichwort RSA).
Für die Installation von OpenShift wird Docker auf allen Nodes benötigt. Nach getaner Arbeit dürfen Sie ihren Storage driver auswählen. Details hierzu finden Sie unter anderem bei den Beschreibungen direkt bei Docker. Diese sind sehr empfehlenswert, will man im weiteren Verlauf nicht nur „Passagier einer Kreuzfahrt“ sein, sondern auch mal das „Ruder halten“. Im Grunde genommen geht es darum, dass Docker mit dem nativen Dateisystem nicht viel anfangen kann und hier weitere Helfer benötigt werden. Wer mit Overlay2 zufrieden ist, muss nichts weiter beachten. Dies entspricht bei der normalen Installation von OpenShift dem Default. Für Produktionsumgebungen schließt die Konfiguration des Thin pool storage die „Dockerpflege“ ab. Docker ist jetzt installiert und voller Einsatzfreude.
Endlich sind alle Vorkehrungen getroffen um mit der eigentlichen Installation zu beginnen, die nun lediglich auf dem Master erfolgt. Zum Glück wird das mehr oder weniger automatisch durch entsprechende Tools abgewickelt. Diese Tools hören auf die Namen Ansible und Ansible-openshift und können gemäß Beschreibungen auf den bereits verlinkten Seiten installiert werden. Ansible ist ein Tool für die automatische Konfiguration von Hosts und bedient sich yml Dateien. Ansible-openshift liefert die für OpenShift benötigten yml Dateien. Die Kunst ist es jetzt, das sogenannte inventory file korrekt zu konfigurieren, welches von den genannten Tools genutzt wird. Dieses enthält die notwendigen Informationen zu den Hosts. Die Konfigurationsmöglichkeient sind ausführlich beschrieben. Der späteren Gesundheit zu Liebe empfiehlt es sich beim Lesen der relevanten Abschnitte nicht zu geizen. Ist es geschafft, wird prerequisites.yml und anschließend deploy_cluster.yml aufgerufen. Das sieht dann wie folgt aus:
$ ansible-playbook [-i /path/to/inventory] \ playbooks/prerequisites.yml
$ ansible-playbook [-i /path/to/inventory] \ playbooks/deploy_cluster.yml
Jetzt heißt es im Besten Falle einfach nur warten (Fehlermeldungen kommen in der Regel recht schnell). Anschließend können Sie die Konfiguration durch den Aufruf von
$ oc get nodes
überprüfen. Läuft die Installation auf Anhieb erfolgreich durch sollten Sie sich zu recht auf die Schulter klopfen. Andernfalls gibt es genügend Möglichkeiten, wieso es nicht auf Anhieb funktioniert. Geben Sie nicht auf! Glücklicherweise ist das Skript einigermaßen gesprächig. Häufig ist entweder die Kommunikation über ssh nicht reibungslos (alle Nodes müssen ohne Passwort über ssh erreichbar sein), oder das inventory file entspricht nicht den Erwartungen.
Comments are closed.