OpenShift ist eine An­wen­dungs­platt­form auf Basis von Ku­ber­netes. Die Software wird für den Aufbau ver­teil­ter, ska­lie­ren­der An­wen­dungs- und Ent­wick­lungs­um­ge­bun­gen ein­ge­setzt. Auf Basis von OpenShift lassen sich Firmen-eigene Platform-as-a-Service - (PaaS), Software-as-a-Service - (SaaS) und Con­tai­ners-as-a-Service - (CaaS) Lösungen im­ple­men­tie­ren.

Die Software erlaubt das komplette Ma­nage­ment des An­wen­dungs-Life­cy­cles, inklusive Ent­wick­lung, Rollout, Betrieb und Wartung. Mehr als zwei­tau­send Un­ter­neh­men weltweit setzen auf OpenShift, um ihre An­wen­dun­gen in Hybrid-Cloud-Um­ge­bun­gen zu hosten. Wir erklären, wie OpenShift funk­tio­niert und was die Software besonders macht.

Welche OpenShift-Versionen gibt es?

Bei OpenShift handelt es sich nicht um ein einzelnes Produkt. Vielmehr ver­öf­fent­licht die Firma Red Hat ver­schie­de­ne Versionen als Open Source Software unter der Apache-Lizenz. Die „Flagship“-Version ist die „Red Hat OpenShift Container Platform“ (OCP). Diese wird als Ku­ber­netes-Cluster auf der Hybrid-Cloud In­fra­struk­tur eines Un­ter­neh­mens in­stal­liert. Ein einzelner OpenShift-Cluster kann sich also über mehrere Public- und Private-Cloud Um­ge­bun­gen hinweg er­stre­cken.

Neben der OpenShift Container Platform (OCP) gibt es die Community-Version „OKD“, welche vormals den Namen „OpenShift Origin“ innehatte. Bei OKD handelt es sich um eine an­ge­pass­te Ku­ber­netes-Dis­tri­bu­ti­on, welche auf Ku­ber­netes für die Clus­ter­ver­wal­tung und „Open Container In­itia­ti­ve“ (OCI)-konforme Container setzt. Ferner sind Funk­tio­nen für die An­wen­dungs-Lifecycle Ver­wal­tung und DevOps-Tools mit an Bord. In­ter­es­san­ter­wei­se ist OKD die „Upstream“-Grundlage für die Ent­wick­lung der anderen OpenShift-Versionen – ähnlich, wie das Open-Source-Projekt Chromium als Grundlage für Ent­wick­lung des Chrome-Browsers dient.

Neben OCP und OKD als „On-premises“-Lösungen, welche auf eigener In­fra­struk­tur gehostet werden, gibt es eine Vielzahl an „Managed“-Lösungen. Diese laufen auf ver­schie­de­nen Public Clouds großer Anbieter, sowie auf der Cloud-In­fra­struk­tur von Red Hat. Wir be­spre­chen in erster Linie OCP in der zum Zeitpunkt der Ar­ti­kel­er­stel­lung aktuellen Version 4.8. Schauen wir uns im Überblick die ver­schie­de­nen OpenShift-Versionen an:

OpenShift Produkte Be­schrei­bung Plattform
Red Hat OpenShift Container Platform (OCP) „On-premises“ En­ter­pri­se-Lösung für den Einsatz in der eigenen Hybrid-Cloud In­fra­struk­tur Red Hat En­ter­pri­se Linux CoreOS (RHCOS)
OKD „On-premises“ Community-Produkt, Grundlage für OCP Red Hat En­ter­pri­se Linux (RHEL) oder CentOS
OpenShift Online Managed-SaaS-Lösung Red Hat Cloud
OpenShift Dedicated Managed-PaaS-Lösung; Red Hat übernimmt komplette Ad­mi­nis­tra­ti­on des Systems Amazon AWS oder Google Cloud

Wie funk­tio­niert OpenShift?

OpenShift ist eine Pro­dukt­rei­he von An­wen­dungs­platt­for­men auf Basis von Ku­ber­netes. Die Software umfasst eine Handvoll Kern­kom­po­nen­ten, sowie eine Vielzahl zu­sätz­li­cher Funk­tio­na­li­tä­ten. OpenShift lässt sich in un­ter­schied­lichs­ten Um­ge­bun­gen hosten; dazu gehören „Bare metal“-Maschinen, Public- und Private-Clouds, sowie „Edge“-Geräte.

Tipp

Die Ge­mein­sam­kei­ten und Un­ter­schie­de von OpenShift und Ku­ber­netes be­spre­chen wir in einem separaten Artikel.

Aus welchen Kom­po­nen­ten besteht OpenShift?

OpenShift basiert auf einem Software-Stack, das heißt einem Stapel mit­ein­an­der ver­bun­de­ner Tech­no­lo­gien. Auf der untersten Ebene kommt eine spezielle Linux-Dis­tri­bu­ti­on als Be­triebs­sys­tem zum Einsatz. Das dabei ver­wen­de­te „Red Hat En­ter­pri­se Linux CoreOS“ (RHCOS) wird auf phy­si­scher oder vir­tua­li­sier­ter Hardware in­stal­liert.

Hinweis

In früheren OpenShift Versionen kam „Red Hat En­ter­pri­se Linux“ (RHEL) anstelle von RHCOS zum Einsatz.

Aufbauend auf dem RHCOS-Be­triebs­sys­tem kommt Ku­ber­netes als Container- und Cluster-Or­chestra­tor zum Einsatz. Ku­ber­netes übernimmt De­ploy­ment, Ska­lie­rung und Ver­wal­tung con­tai­ne­ri­sier­ter An­wen­dun­gen. Als nächste Ebene im Software-Stack werden Ku­ber­netes-Ope­ra­to­ren verwendet. Dabei handelt es sich um vor­ge­fer­tig­te, einfach in­stal­lier­ba­re „Ku­ber­netes-native“ An­wen­dun­gen. Neben Ope­ra­to­ren kommt bei Ein­rich­tung und Betrieb eines OpenShift-Clusters eine Container-Registry zum Einsatz.

Was für ein Ku­ber­netes ist in OpenShift enthalten?

OpenShift setzt auf eine spezielle Ku­ber­netes-Dis­tri­bu­ti­on, welche als Container-Runtime CRI-O statt Docker bzw. con­tai­nerd nutzt. Durch die Loslösung von Docker als zu­grun­de­lie­gen­der Tech­no­lo­gie ergeben sich Vorteile in Bezug auf Si­cher­heit und Kom­pa­ti­bi­li­tät mit anderen Container-Formaten.

Was ist ein Operator in OpenShift?

Ein Ku­ber­netes-Operator überwacht den Zustand einer gesamten Anwendung. Mit In­stal­la­ti­on, Betrieb und Wartung decken Ope­ra­to­ren den kom­plet­ten Lifecycle einer Ku­ber­netes-Anwendung ab. In den Worten der OpenShift-Do­ku­men­ta­ti­on:

Zitat

„An Operator is a method of packaging, deploying and managing a Ku­ber­netes-native ap­pli­ca­ti­on. A Ku­ber­netes-native ap­pli­ca­ti­on is an ap­pli­ca­ti­on that is both deployed on Ku­ber­netes and managed using the Ku­ber­netes APIs and kubectl tooling.“ - Quelle: https://cloud.redhat.com/learn/topics/operators

Über­set­zung: „Ein Operator ist eine Methode zum Verpacken, Deployen und Verwalten einer Ku­ber­netes-nativen Anwendung. Eine Ku­ber­netes-native Anwendung ist eine Anwendung, welche durch Ku­ber­netes deployt und mit der Ku­ber­netes-API und dem kubectl-Tool verwaltet wird.“ (Übersetzt von IONOS)

Auf der Plattform Ope­ra­tor­Hub gibt es eine große Auswahl von Ope­ra­to­ren. So lassen sich bei­spiels­wei­se ver­schie­de­ne Da­ten­bank­sys­te­me mit minimalem Aufwand nahtlos in den OpenShift-Cluster einbinden. Ferner kommen In­fra­struk­tur-Ope­ra­to­ren zur Ver­wal­tung des Clusters zum Einsatz.

Wie sich zeigt, sind Ope­ra­to­ren es­sen­zi­ell für die Funk­tio­na­li­tät von OpenShift. Ein Ku­ber­netes-Operator ist eine Spe­zia­li­sie­rung des Ku­ber­netes-Con­trol­lers auf An­wen­dungs­ebe­ne. Ein Ku­ber­netes-Con­trol­ler überwacht kon­ti­nu­ier­lich den Zustand einer Ressource und passt bei Bedarf ver­schie­de­ne Parameter an, um einen de­fi­nier­ten Zustand zu halten.

Was ist eine Registry in OpenShift?

Eine Container-Registry enthält Container-Images, welche beim Bauen von Software laufend erzeugt werden. Die Images werden ver­sio­niert, einer Si­cher­heits­prü­fung un­ter­zo­gen und in der Registry abgelegt. In­ter­es­san­ter­wei­se ist innerhalb von OpenShift die Registry selbst als Operator im­ple­men­tiert.

Mit „Quay“ steht eine von Red Hat ent­wi­ckel­te Registry mit Fokus auf Si­cher­heit zur Verfügung. Die bei der In­stal­la­ti­on des OpenShift-Clusters be­nö­tig­ten Images werden von Quay bezogen. Dabei kann Quay neben den Container-Images noch weitere Build-Artefakte verwalten. In den Worten der Red Hat-Do­ku­men­ta­ti­on:

Zitat

„Quay is a container registry for storing con­tai­ners, Helm charts, and other container-related content.“ – Quelle: https://www.redhat.com/sysadmin/in­tro­duc­tion-quay

Über­set­zung: „Quay ist eine Container-Registry zur Spei­che­rung von Con­tai­nern, Helm-Charts und weiteren auf Container bezogenen Inhalten.“ (Übersetzt von IONOS)

Dem ge­staf­fel­ten Pro­dukt­mo­dell von OpenShift OCP und OKD folgend, exis­tie­ren mehrere Versionen von Quay:

Registry Erklärung Plattform
Red Hat Quay läuft auf der eigenen Rechen-In­fra­struk­tur, inklusive Private-Clouds; wird in OpenShift durch einen Operator ein­ge­bun­den eigene Cloud-Umgebung, inklusive Private-Cloud
Red Hat Quay.io verwaltet von Red Hat mit En­ter­pri­se-Level-Support Cloud

Wie ist OpenShift aufgebaut?

OpenShift wird auf Grundlage von Ku­ber­netes als Cluster von Con­tai­nern rea­li­siert. Auf der Cluster-Ebene umfasst OpenShift zwei Ebenen:

  1. Kontroll-Ebene („Control Plane“)

Die Kontroll-Ebene setzt sich aus sog. „Control-Plane-Maschinen“ zusammen. Diese sind auch als „Master-Maschinen“ bekannt und verwalten den OpenShift Container Platform-Cluster.

  1. Arbeits-Maschinen („Worker Machines“)

Die Ar­beits­ma­schi­nen, welche auch als „Compute-Maschinen“ bekannt sind, führen die ei­gent­li­chen Arbeiten des OpenShift-Clusters aus. Master-Maschinen weisen den Ar­beits­ma­schi­nen Aufgaben zu und über­wa­chen die Aus­füh­rung.

Welche Dienste laufen auf den Arbeits-Maschinen?

Eine Ar­beits­ma­schi­ne betreibt die folgenden Dienste und wird dadurch in den OpenShift-Cluster ein­ge­bun­den:

  • CRI-O, als Container-Lauf­zeit­um­ge­bung,
  • Kubelet, als Dienst welcher Anfragen zum Starten und Stoppen der Ar­beits­auf­ga­ben annimmt und ver­ar­bei­tet,
  • ein Service-Proxy, welcher die Kom­mu­ni­ka­ti­on zwischen Ar­beits­ma­schi­nen regelt.

Die weitere Spe­zia­li­sie­rung der Ar­beits­ma­schi­nen ergibt sich aus dem Zustand der laufenden Container und der darin ent­hal­te­nen Software.

Aus welchen Kom­po­nen­ten besteht die Kon­trol­l­ebe­ne?

Schauen wir uns im Folgenden de­tail­liert den Aufbau der Kon­trol­l­ebe­ne an. Wir un­ter­schei­den zwischen Kom­po­nen­ten der Ku­ber­netes-Im­ple­men­ta­ti­on und den OpenShift-spe­zi­fi­schen Kom­po­nen­ten:

Ku­ber­netes-Kom­po­nen­te Erklärung
Ku­ber­netes API Server Der Ku­ber­netes API Server überprüft und kon­fi­gu­riert die Daten für Pods, Dienste und Re­pli­ka­ti­ons-Con­trol­ler. Ferner fungiert die API als zentrale Schnitt­stel­le für globale Cluster-Zu­stands­da­ten.
etcd Der etcd-Dienst enthält den per­sis­ten­ten Master-Zustand. Die anderen Kom­po­nen­ten über­wa­chen ectd auf Än­de­run­gen und passen ihren Zustand wie er­for­der­lich an.
Ku­ber­netes Con­trol­ler Manager Der Ku­ber­netes Con­trol­ler Manager überwacht etcd auf Än­de­run­gen von Objekten wie Re­pli­ka­ti­on, Namespace und Service Account Con­trol­ler und benutzt die API, um den ge­wünsch­ten Zustand zu erzielen. Es gibt einen Cluster mehrerer dieser Prozesse, wobei einer als Anführer aktiv ist.
Ku­ber­netes Scheduler Der Ku­ber­netes Scheduler erkennt neu erzeugte Pods, denen noch kein Node zu­ge­wie­sen wurde und wählt den besten Node, um den Pod zu hosten.

Die OpenShift-spe­zi­fi­schen Kom­po­nen­ten der Kon­trol­l­ebe­ne sind als Ope­ra­to­ren im­ple­men­tiert:

OpenShift-Kom­po­nen­te Erklärung Verwaltet durch
OpenShift API Server Der OpenShift API Server überprüft und kon­fi­gu­riert OpenShift-Res­sour­cen, wie Projekte, Routes und Templates. OpenShift API Server Operator
OpenShift Con­trol­ler Manager Der OpenShift Con­trol­ler Manager überwacht etcd auf Än­de­run­gen von OpenShift-Objekten, wie Projekte, Routes und Template-Con­trol­ler-Objekte und benutzt die API, um den ge­wünsch­ten Zustand zu erzielen. OpenShift Con­trol­ler Manager Operator
OpenShift OAuth API Server Der OpenShift OAuth API Server überprüft und kon­fi­gu­riert die Daten für die Au­then­ti­fi­zie­rung auf der OpenShift Container Platform. Dazu gehören Benutzer, Gruppen und OAuth Token. Cluster Au­then­ti­ca­ti­on Operator
OpenShift OAuth Server Benutzer erfragen ein Token vom OpenShift OAuth Server, um sich gegenüber der API zu au­then­ti­fi­zie­ren. Cluster Au­then­ti­ca­ti­on Operator

Für welche An­wen­dungs­sze­na­ri­en wird OpenShift ein­ge­setzt?

Die OpenShift Container Plattform wird vor allem für den Aufbau von An­wen­dungs- und Ent­wick­lungs­um­ge­bun­gen ein­ge­setzt. So lassen sich Firmen-eigene PaaS-, SaaS- und CaaS-Lösungen im­ple­men­tie­ren. Aufgrund der Mäch­tig­keit und Kom­ple­xi­tät der Software kommt OpenShift in erster Linie für lang­le­bi­ge Projekte großer Or­ga­ni­sa­tio­nen zum Einsatz.

Zu den Nutzern von OpenShift gehören Re­gie­rungs- und For­schungs­ein­rich­tun­gen auf na­tio­na­ler Ebene, sowie in­ter­na­tio­nal agierende Un­ter­neh­men wie Banken und Ver­si­che­run­gen. Die genannten Nut­zer­grup­pen pro­fi­tie­ren allesamt von Hybrid-Cloud-De­ploy­ments. Das De­ploy­ment über Grenzen von Private- und Public-Clouds hinweg erlaubt, Teile der In­fra­struk­tur nach lokalen Com­pli­ance-Vorgaben zu hosten.

Ein weiterer, wichtiger Aspekt, welcher für den Einsatz von OpenShift spricht, ist das hohe Maß an Si­cher­heit. Cyber-Ein­brü­chen und Da­ten­lecks vor­zu­beu­gen ist es­sen­zi­ell für große, in­ter­na­tio­na­le Un­ter­neh­men. Denn bei Brüchen der Si­cher­heit drohen nach­hal­ti­ger Image-Schaden und hohe Straf­zah­lun­gen.

Die in OpenShift ent­hal­te­nen Funk­tio­na­li­tä­ten erlauben schnelle Ent­wick­lungs-Workflows. Dies führt im Einsatz zu radikal gesenkten Ent­wick­lungs­zeit­räu­men; fir­men­ei­ge­ne Software-Teams können ihre Res­sour­cen kom­for­ta­bel selbst verwalten und die Ent­wick­lungs­ar­beit kon­ti­nu­ier­lich vor­an­trei­ben.

Nutzt ein Un­ter­neh­men eines der ver­füg­ba­ren Managed-OpenShift-Angebote, entfällt der Aufwand für Ad­mi­nis­tra­ti­on von Server und Be­triebs­sys­te­men. Anstatt sich um Updates und Backups zu kümmern, kann das Un­ter­neh­men sich auf das We­sent­li­che kon­zen­trie­ren: In­no­va­ti­on und Werte für Kunden schaffen.

Si­cher­lich ist OpenShift nichts für kleine Un­ter­neh­men oder einzelne Ent­wick­ler. Um deren An­for­de­run­gen zu erfüllen, greift man lieber zu einer der ver­füg­ba­ren OpenShift-Al­ter­na­ti­ven oder Ku­ber­netes-Al­ter­na­ti­ven.

Was ist der Funk­ti­ons­um­fang von OpenShift?

Ein großer Vorteil von OpenShift gegenüber „blankem“ Ku­ber­netes sind die von Hause aus vor­han­de­nen Kom­fort­funk­tio­nen. Diese gehen über die bloße Cluster-Ver­wal­tung von Ku­ber­netes hinaus. Unter anderem enthält OpenShift Funk­tio­na­li­tä­ten für:

  • Software-de­fi­nier­te Netzwerke (SDN)
  • Routing
  • Au­then­ti­fi­zie­rung
  • Mo­ni­to­ring und Logging

Zur Ver­wal­tung der Plattform enthält OpenShift neben den ob­li­ga­to­ri­schen Kom­man­do­zei­len-Werk­zeu­gen eine mächtige Web-Ober­flä­che. Ent­wick­lungs- und DevOps-Workflows werden durch Nutzung von „Red Hat OpenShift Pipelines“ be­schleu­nigt. Dabei kommt das Open Source Tekton-Framework für „Con­ti­nuous in­te­gra­ti­on“ / „Con­ti­nuous de­ve­lo­p­ment“ (CI/CD) zum Einsatz. Neben con­tai­ne­ri­sier­ten An­wen­dun­gen lassen sich moderne „Ser­ver­less“-Ansätze auf Basis von „Ser­ver­less Ku­ber­netes“ (Knative) nutzen.

Ein weiterer Schwer­punkt von OpenShift liegt auf der Be­reit­stel­lung ver­teil­ter Mi­cro­ser­vice-Ar­chi­tek­tu­ren. Dieses auch als „Red Hat Service Mesh“ bekannte An­wen­dungs­mus­ter beruht auf dem Open Source-Projekt „Istio“. Um der mit Mi­cro­ser­vice-Ar­chi­tek­tu­ren ein­her­ge­hen­den Kom­ple­xi­tät Herr zu werden, enthält OpenShift eine Reihe weiterer Tools: „Pro­me­theus“ dient der Ver­wal­tung von Mo­ni­to­ring und Be­nach­rich­ti­gun­gen, wo­hin­ge­gen „Jaeger“ die Nach­ver­fol­gung von Trans­ak­tio­nen erlaubt. Zur Vi­sua­li­sie­rung des Service Mesh kommt „Kiali“ zum Einsatz.

Welche Vor- und Nachteile hat OpenShift?

Einer der größten Vorteile bei der Nutzung von OpenShift liegt darin, die Software in einer Hybrid-Cloud-Umgebung zu betreiben. Dabei erstreckt sich ein einzelner OpenShift-Cluster über die Grenzen mehrerer Private- und Public-Clouds hinweg. OpenShift-Cluster, welche Red Hat En­ter­pri­se Linux CoreOS (RHCOS) als al­lei­ni­ges Be­triebs­sys­tem nutzen, pro­fi­tie­ren von au­to­ma­ti­sier­ten Prozessen beim Update und Upgrade.

Durch die in­te­grier­te Red-Hat-Tech­no­lo­gie und die in die Plattform in­te­grier­ten Ver­wal­tungs­werk­zeu­ge und -prozesse ergibt sich ein hoher Nut­zungs­kom­fort. Das Open Source-Ent­wick­lungs­mo­dell und die ein­ge­bau­ten DevOps-Funk­tio­na­li­tä­ten erlauben schnelle Ent­wick­lungs­pro­zes­se. Die ver­stärk­te Nutzung von Ope­ra­to­ren als uni­ver­sel­les An­wen­dungs­for­mat trägt zur Stan­dar­di­sie­rung bei und er­leich­tert vormals komplexe An­pas­sun­gen.

Der Einsatz von CRI-O als Container-Runtime anstelle von Docker führt zu einer höheren Si­cher­heit der Plattform. Die be­nut­zer­freund­li­che Web-Ober­flä­che gilt als mächtiger und über­sicht­li­cher als das ver­gleich­ba­re Ku­ber­netes Dashboard. Auch auf der Kom­man­do­zei­le glänzt OpenShift mit dem oc-Befehl, welcher die Bedienung der Plattform er­leich­tert.

Natürlich bedingen die genannten Be­son­der­hei­ten von OpenShift auch einige Nachteile. Zum einen vermissen ein­ge­fleisch­te Ku­ber­netes-Nutzer die mächtigen Helm-Charts, welche den Aufbau der In­fra­struk­tur be­schrei­ben. Ferner lassen sich auf Grund der strengen Si­cher­heits-Ein­stel­lun­gen nicht alle Container von Docker Hub unter OpenShift nutzen. Auch der Fokus auf die Red-Hat-eigene Linux-Dis­tri­bu­ti­on Red Hat En­ter­pri­se Linux CoreOS (RHCOS) wirkt ein­schrän­kend; Ku­ber­netes ist in dieser Hinsicht flexibler.

Auf welcher In­fra­struk­tur lässt sich OpenShift betreiben?

OpenShift lässt sich auf so gut wie allen Ebenen von Rechen-In­fra­struk­tur betreiben: von „Bare metal“-Maschinen im eigenen Re­chen­zen­trum über vir­tua­li­sier­te Hardware in Private- und Public-Cloud-Um­ge­bun­gen, bis hin zu Edge-Geräten. Wir un­ter­schei­den zwischen „Managed“-Lösungen, bei denen die Ver­wal­tung der OpenShift-Plattform vom Anbieter über­nom­men wird, und vom Kunden ad­mi­nis­trier­ten „Self-managed“ In­stal­la­tio­nen:

Welche Optionen für den Betrieb von Managed-OpenShift gibt es?

Produkt In­fra­struk­tur Verwaltet durch Support von
Microsoft Azure Red Hat OpenShift Microsoft Azure Red Hat und Microsoft Red Hat und Microsoft
Red Hat OpenShift Dedicated Amazon AWS oder Google Cloud Red Hat Red Hat
Red Hat OpenShift on IBM Cloud IBM Cloud IBM Red Hat und IBM
Red Hat OpenShift Service on AWS Amazon AWS Red Hat und AWS Red Hat und AWS

Welche Optionen für den Betrieb von Self-managed OpenShift gibt es?

Produkt In­fra­struk­tur Verwaltet durch Support von
Red Hat OpenShift Platform Plus Private Cloud, Öf­fent­li­che Cloud, Physische Maschine, Virtuelle Maschine, Edge Kunde Red Hat / In­fra­struk­tur-Anbieter
Red Hat OpenShift Container Platform Private Cloud, Öf­fent­li­che Cloud, Physische Maschine, Virtuelle Maschine, Edge Kunde Red Hat / In­fra­struk­tur-Anbieter
Red Hat OpenShift Ku­ber­netes Engine Private Cloud, Öf­fent­li­che Cloud, Physische Maschine, Virtuelle Maschine, Edge Kunde Red Hat / In­fra­struk­tur-Anbieter
Zum Hauptmenü