10. Juli 2019

OpenShift vs. Kubernetes

commerce-container-export-379964

Welche Vor- und Nachteile haben Kubernetes und OpenShift? Dieser Frage geht ti&m-Surfer Bernd Leinfelder in seinem aktuellen Blog-Beitrag nach.

Kubernetes, ein ursprünglich von Google gestartetes Projekt, hat sich mittlerweile als Standardprodukt für die Container Orchestrierung im Container-as-a-Service (CaaS)-Umfeld etabliert. Kubernetes ist eine flexibel einsetzbare, weitgehend den Bedürfnissen anpassbare Plattform. OpenShift dagegen bietet zusätzliches Tooling, um das Setup und den Betrieb einer CaaS-Plattform zu vereinfachen und Build Prozesse zu automatisieren.

Einige der wichtigsten Unterschiede sind im Folgenden dargestellt.

 

Produkt vs. Projekt

OpenShift ist in erster Linie eine Kubernetes Distribution, die von Red Hat als Produkt vertrieben wird. Als Analogie mag hier der Linux Kernel dienen: So wie Linux Distributionen aus einem Kernel ein nutzbares Betriebssystem machen, das einfach als Ganzes installiert werden kann, macht OpenShift aus Kubernetes eine out of the box nutzbare integrierte Container Plattform.

Als von Red Hat vertriebenes Produkt ist für OpenShift Herstellersupport erhältlich. Wer keinen Wert auf den Herstellersupport legt, kann aber mit OKD (früher OpenShift Origin) auch eine Community Edition nutzen, die die meisten Komponenten von OpenShift Enterprise inkludiert.

 

Plattformsupport

Einen signifikanten Unterschied gibt es in den unterstützten Plattformen. Während Kubernetes auf praktisch allen Systemen, inklusive MacOS und Windows zum Laufen zu bekommen ist, beschränkt sich OpenShift auf Red Hat Enterprise Linux, Fedora und CentOS.

 

Secure by Default

Mit Hinsicht auf die anvisierte Zielgruppe sind einige Sicherheitsoptionen in OpenShift strenger konfiguriert als in Kubernetes. So ist es per Default nicht möglich, in OpenShift Container mit Root-Rechten laufen zu lassen. Berechtigungsmodell in OpenShift ist immer RBAC, während Kubernetes RBAC erst seit Version 1.8 (Sept. 2017) unterstützt.

 

Netzwerkmodell

Networking im Kubernetes Cluster wird immer über ein Software Defined Network (SDN) abgewickelt. Die Implementierung kann frei gewählt werden. Alleine auf der Kubernetes Webseite sind derzeit etwa 20 verschiedene Netzwerkimplementierungen aufgeführt. Allen gemeinsam sind folgende Eigenschaften:

  • Alle Pods im Kubernetes Cluster können ohne NAT mit allen anderen Pods kommunizieren.
  • Alle Services auf einem Host (zum Beispiel System Deamons) können mit allen Pods auf dem gleichen Host kommunizieren.

Die einzelnen Implementierungen unterscheiden sich beispielsweise in der unterstützten Backend Technologie, es gibt beispielsweise eine Implementierung speziell für NSX-T (die Netzwerkvirtualisierungs- und Sicherheitsplattform von VMware), für Google Cloud Engine oder einfache Implementierungen wie Flannel, die ein einfaches, flaches Netzwerk bereitstellen. Dazwischen gibt es Implementierungen, die unterschiedliche Level von Sicherheits- und Routingfunktionalität bereitstellen und so je nach Use-Case optimale Lösungen bieten.

OpenShift stellt dem Anwender nur drei sogenannte Netzwerkplugins zur Auswahl: Mit ovs-subnet wird ein flaches Netzwerk bereitgestellt, in dem jeder Pod mit jedem anderen Pod kommunizieren kann. ovs-multitenant ermöglicht eine Isolierung auf Projekt-Level. Pods aus einem Projekt können nicht direkt mit Pods aus einem anderen Projekt kommunizieren. Am Granularsten lassen sich Netzwerkverbindungen mit ovs-networkpolicy definieren. Mit diesem Plugin können Punkt-zu-Punkt Verbindungen für jeden Pod definiert werden.

 

Build & Deployment Automatisierung

OpenShift bietet umfangreiche Features im Bereich Continuous Build und Deployment. Mit Build- und ImageStreams werden Möglichkeiten bereitgestellt, um vollautomatische Source-to-Image (S2I) Prozesse aufzusetzen. Kubernetes sieht out of the box keine solchen Möglichkeiten vor.

 

Fazit

Zusammengefasst vereinfacht OpenShift die Bereitstellung einer Container Plattform. Während mittels Kubernetes in einem Custom Setup die Möglichkeiten der Containerisierung bis in die hinterste Ecke ausgelotet werden können, bietet OpenShift eine sinnvolle Vorauswahl für die gängigen Einsatzszenarien. Wer auf Herstellersupport für seine On-premise Containerplattform wert legt, wird um OpenShift Enterprise nicht herumkommen. Wer mit dem hervorragenden Community Support auskommt, wird mit Kubernetes oder OKD ohne Probleme eine reife, stabile Plattform aufbauen können.


Bernd  Leinfelder
Bernd Leinfelder

Bernd Leinfelder ist seit 2016 System Architekt bei ti&m. Er verfügt über langjährige Erfahrungen in Softwareentwicklung und System Engineering. Neben seiner Tätigkeit bei ti&m leitet er den Fachbereich Enterprise Computing an der Fernfachhochschule Schweiz und doziert dort zu Robustheit und Wartbarkeit verteilter Software. Er hält diverse Zertifizierungen in den Bereichen Cloud Computing, IT-Security und IT-Audit.

Weitere Beiträge

Building an Efficient Chat Tool Prototype<br/>
ManMachine: Building an Efficient Chat Tool Prototype

Artificial Intelligence (AI) has been a major theme in the last decade and numerous big companies have invested a lot of effort into the technology. Within the scope of our last ti&m garage project, we too developed a small but efficient chat tool prototype for a big company in Switzerland.

Mehr erfahren
API 750x410
Wie sich mit APIs Geschäftsmodelle verändern

IT-Systeme vernetzen sich immer stärker. Application Programming Interfaces, kurz APIs, sind Anwendungsprogrammierschnittstellen zwischen IT-Systemen und werden daher 2017 stark an Bedeutung gewinnen. Ihre erfolgreiche Anwendung erfordert die Zusammenarbeit von Business, IT-Entwicklung und IT-Betriebsmitarbeitern in kleinen, interdisziplinären Teams von 6-8 Personen.

Mehr erfahren
SAM 750x410
Meet SAM, the Secure Artificial Intelligent Messenger

Back in November, we told you about the very first ti&m code camp, where our employees were tasked with finding innovative solutions to several technical challenges. In today’s interview, we have decided to speak with the winning team about “SAM”, their artificial intelligence application, and find out more about how the solution was built, how accurate it is and what their plans for the future are.

Mehr erfahren
Setup eines Maven-basierten Multi-Modul-Build incl. RCP- (OSGI-) Komponenten<br/>
Setup eines Maven-basierten Multi-Modul-Build incl. RCP- (OSGI-) Komponenten

Mehr erfahren
Taking Agile to the Next Level
The End of All Projects, or: Taking Agile to the Next Level

Imagine a world without projects, project leaders and product owners. Imagine a broader product definition, a larger backlog and multiple feature teams all working on the same effort. In this article, ti&m's CTO Martin Fabini explores an organizational design based on LeSS, the framework for scaling agile software development to multiple teams.

Mehr erfahren