User-Provisioned Infrastructure für OpenShift mit orcharhino

Kürzlich hat mich ein Teilnehmer einer Kubernetes-Schulung gefragt, ob sich dieses OpenShift mit dem orcharhino aufsetzen lässt. Er war bereits seit längerem orcharhino-Nutzer und mit dessen Automatisierungsmethoden vertraut, Kubernetes und insbesondere OpenShift waren ihm noch relativ neu. “Ja.”, antwortete ich und musste dann aber doch grübelnd und schweigend innehalten. Wir hatten das schon gemacht, aber das war OpenShift 3.

Tatsächlich hat sich die Installation von OpenShift, also RedHats Kubernetes-Distribution mit dem Major-Version-Sprung ganz grundlegend verändert. Aber bei genauerem Hinsehen waren ja alle Grundlagen auch für die neue Methode im orcharhino vorhanden, vielleicht sogar mehr. Ich revidierte meine Antwort zu einem “Ja, also, sollte gehen.” Tatsächlich geht es sehr gut, wie ich inzwischen sagen kann.

orcharhino-hosts

orcharhino-hosts

OpenShift 3 hat RHEL-Server verwendet und darauf mit Ansible alle Dienste für Kubernetes installiert und konfiguriert. Sobald dieses Grundgerüst stand, sind die Anpassungen passiert, die aus dem Kubernetes ein OpenShift machen – grob gesprochen. Der orcharhino hat sich in dieses Modell eingefügt, indem er das Lifecycle-Management für die Hosts übernommen hat und bei Bedarf als Registry-Mirror fungiert hat – wenn man etwa in Umgebungen ohne Internetzugang sein Kubernetes aufstellen wollte.

OpenShift 4 wirft RHEL und Ansible aus dieser Prozedur und ersetzt es durch CoreOS mit MachineConfig/Ignition. Unabhängig davon, ob das gut oder schlecht ist, bedeutet das eine so umfassende Änderung, dass nichts, was man von der Installation von Version 3 kennt, noch irgendeine Bedeutung hat.

Heutzutage startet man für die Installation zuerst einen Bootstrap-Knoten. Die Master-Nodes, die als nächstes starten, also die spätere Control-Plane, holen sich ihre Informationen vom Bootstrap-Knoten. Sie bilden einen etcd-Cluster, den befüllt wiederum der Bootstrap-Node, und nach und nach starten all die essentiellen Dienste für OpenShift. An einem gewissen Punkt sind die Master-Nodes voll ausgestattet, der Bootstrap-Node ist nicht mehr nötig. Jetzt ist es Zeit, die Worker-Noder zu starten, die sich ihre Information von den Master-Nodes holen. Das dauert dann noch ein paar Minuten, bis man eine vollständige OpenShift-Installation vor sich hat.

RedHat ermöglicht die Installation in zwei Varianten: Die Nutzer steuern die Infrastruktur selber bei oder der Installer kümmert sich die Ressourcen. In der zweiten Variante sollte das Infrastruktur-Team Zugriff auf die Firmen-Kreditkarte haben und sich beliebig Cloud-Instanzen buchen dürfen. Es ist verführerisch unkompliziert, natürlich dabei eingeschränkt: die Variante funktioniert mit den Hyperscalern, mit VMware vSphere, RHV und bestimmten IBM-Produkten.

Das eigene Bereitstellen, die sogenannte User Provisioned Infrastructure (UPI), ist der Punkt, an dem der orcharhino sich hilfreich einfügt. Man muss dafür verstehen, wie sich CoreOS installieren lässt. Es verwendet dafür ein Dateisystemabbild, das sich nur minimal anpassen lässt. Diese Anpassung erfolgt über Ignition, das ungefähr die Rolle einnimmt wie bei CentOS und RHEL Anaconda/Kickstart. Die Vorlagen für die Ignition-Dateien kann der orcharhino bereitstellen und anpassen, um beispielsweise einem Host zu sagen, dass er die Rolle des Bootstrap-Knoten einnimmt und für welchen Cluster er das tut. Die komplette Installation der CoreOS-Knoten kann man so über den orcharhino anstoßen.

Innerhalb des Netzwerk aus CoreOS-Hosts geschieht dann die Installation von OpenShift. Bei direktem Zugriff aufs Internet funktioniert alles Weitere ohne Unterstützung des orcharhino. In airgapped Szenarien, also ohne direkten Zugriff aufs Internet, müssen die benötigten Container-Images im lokalen Netzwerk gespeichert werden. Wie schon bei OpenShift 3 kann der orcharhino das übernehmen, also als lokale Container-Registry bereitstehen.

All diese Schritte kann man über die Foreman Ansible Modules automatisieren. Ein relativ kurzes Playbook erlaubt so, mit einem Befehl einen OpenShift-Cluster zu installieren, und braucht dafür etwa zehn Minuten.

Mehr Details dazu gab es in meinem Vortrag auf den OSAD 2021 am 6.10. Die Folien und das Video meines Vortrags, sowie aller anderen uns zur Verfügung gestellten Vorträge der OSAD 2021 finden Sie über Eindrücke des OSAD 2021

Viel Spaß beim Lesen und Anschauen!

The following two tabs change content below.

Jan Bundesmann

Neueste Artikel von Jan Bundesmann (alle ansehen)