10. July 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

Analytics 750x410
Big Data - Many Talk About It, We Do It!

We’ve been working on big data topics in our labs and with our clients for quite a while now. Over time, we built a framework of technologies and utilities we can build data driven projects on. We call it ti&m analytics.

find more information
emily-morter-188019-unsplash
Cloud Computing – Macht NoOps den IT-Betrieb bald überflüssig?

Während viele Unternehmen noch damit beschäftigt sind, im Rahmen ihrer agilen Transformation eine DevOps-Kultur einzuführen, entwickelt sich im Tooling-Bereich schon der Begriff NoOps, um weitere Schritte auf dem Weg zur vollständigen Automatisierung im Software-Betrieb zu beschreiben. Braucht es in Zukunft überhaupt noch ein Operations-Team?

find more information
Lazy Angular: Writing Scalable AngularJS Apps
Lazy Angular: Writing Scalable AngularJS Apps

There are two major issues I have faced in the past few years, when writing AngularJS applications, and I have seen numerous other teams fighting the same battles. Out of these experiences the “Lazy Angular” approach came to life. It gives us a project structure which works for both, large and small applications. And it enables us to keep a somewhat consistent load time as new features come to life and our app grows.

find more information
Cloud Act Lead image
CLOUD Act und Data Residency – Ist amerikanischen Cloud Providern noch zu trauen?

Durch den CLOUD Act müssen US-Firmen Daten auch aus ausländischen Rechenzentren bei Anfrage an US-Behörden ausliefern. Firmen, die mit US-Cloud-Providern zusammenarbeiten, müssen sich dieser Gefahr bewusst sein, wie ti&m-Surfer Bernd Leinfelder in seinem Blog-Beitrag herausarbeitet.

find more information
cloud_man_mountain
From the hybrid cloud to the multi‑cloud – new opportunities for success

So. We have private clouds, public clouds and hybrid clouds. And now there’s even the multi‑cloud. Why? And what’s the difference?

find more information