Auf einen Einführungsartikel über die Bedeutung von OpenShift und den Vorteilen gegenüber einer nativen Kubernetes Installation verzichten wir bewusst. Dazu gibt es genügend Artikel im Netz und auch Red Hat schreibt dazu: https://www.openshift.com/learn/topics/kubernetes/
Alle, die schon mal für Tests oder Demos eine hochverfügbare Openshift Installation benötigt haben, oder ohne großen Aufwand einfach mal ausprobieren wollen, wie sich so eine Umgebung verhält, sind hier genau richtig.
Für eine Kundendemo haben wir die Installation einer Openshift 3.11 Installation auf Basis des Microsoft OpenShift Container Platform Deployment Templates (https://github.com/Microsoft/openshift-container-platform) vollständig automatisiert!
Den Link zu den Skripten und der Anleitung findet Ihr am Ende des Artikels. Zunächst wollen wir allerdings in möglichst wenigen Worten einen Überblick über die Komponenten der Installation geben (eine ausführlichere Beschreibung findet Ihr in der offiziellen Dokumentation (https://docs.openshift.com/container-platform/3.11/architecture/index.html) :
Beschreibung der KomponentenFolgende Komponenten werden von unserem Skript deployed:
Der Master verwaltet die Knoten des Clusters und bestimmt, auf welchen Nodes welche Pods laufen. Der Master Node beinhaltet die Kontrollinstanzen einschließlich des API Servers, den Controller Manager Server und ETCD.
Application NodesDie Application Nodes stellen die Laufzeitumgebungen für Container bereit.
Infrastructure NodesAuf den Infrastructure Nodes laufen intern benötigte Komponenten wie die Registry, Prometheus und Hawkular Metriken sowie Elastic Search, Fluentd und Kibana(EFK) Containers für aggregiertes Logging.
Bastion HostDer Bastion-Host verwaltet alle Installationsprozesse, führt die Ansiblen Skripte aus und bietet sicheren Zugriff innerhalb des OpenShift-Cluster-Netzwerks.
Shared Storage / Persistent Storage
Für viele Anwendungscontainer, wie auch für die oben erwähnten Monitoring und Logging Container, wird nicht-flüchtiger Speicher benötigt. In Azure verwenden wir natürlich den Storage von Azure, es gibt allerdings noch zahlreiche andere Optionen (https://docs.openshift.com/container-platform/3.11/architecture/additional_concepts/storage.html).
Loadbalancer für die AnwendungenUm den Applikations-Traffic zu dem korrekten Knoten zu leiten, auf dem der Pod gerade läuft, wird ein Loadbalancer benötigt. In unserem Fall der von Azure.
Loadbalancer für die OpenShift Master NodesUm die Anfragen an die Master Nodes zu verteilen, wird auch hier ein Loadbalancer benötigt.
Die SkripteDie Skripte stehen in unserem GitHub Repo https://github.com/teal-technology-consulting/OpenshiftAzureAutomated bereit. Die Installationsanleitung findet Ihr in der beiliegenden readme Datei.
Solltet Ihr Probleme bei der Verwendung oder Verbesserungsvorschläge haben, meldet Euch gerne in den Kommentaren.
P.S. Wem das immer noch zu viel Aufwand ist, dem sei das Projekt Minishift (https://github.com/minishift/minishift) ans Herz gelegt. Damit könnt Ihr eine funktionsfähige Openshift Installation auf Eurem Notebook installieren.