kalafoto - Fotolia
Wie sich OpenShift und Kubernetes unterscheiden
Da Red Hat OpenShift direkt auf Kubernetes aufbaut und beide Container-Orchestratoren sind, gibt es Gemeinsamkeiten. Hier erfahren Sie mehr über die Unterschiede zwischen den Tools.
Red Hat OpenShift und Kubernetes sind zwei weit verbreitete, jedoch komplexe Plattformen zur Ausführung containerisierter Anwendungen.
OpenShift baut direkt auf Kubernetes auf, was zu erheblichen Ähnlichkeiten zwischen den beiden führt. Dennoch bestehen wesentliche Unterschiede hinsichtlich der verfügbaren Werkzeuge, Standardkonfigurationen und des Supports durch die Hersteller.
Was ist OpenShift?
OpenShift ist eine Plattform für die Containerisierung von Anwendungen. Sie wurde von Red Hat entwickelt, einem Unternehmen, das seit Sommer 2019 zu IBM gehört.
OpenShift ist kein einzelnes Produkt, sondern ein Portfolio von Diensten. Dazu gehören gehostete OpenShift-Services, die in Public Clouds laufen, und die Red Hat OpenShift Container Platform, die für On-Premises und hybride Architekturen konzipiert ist. Darüber hinaus gibt es eine von der Community gepflegte Version von OpenShift namens OKD.
Was ist Kubernetes?
Kubernetes ist eine Open-Source-Container-Orchestrierungsplattform, die in verschiedenen Distributionen wie Rancher, Amazon Elastic Kubernetes Service und Google Kubernetes Engine verfügbar ist. Es wurde von Google-Mitarbeitern entwickelt.
Gemeinsamkeiten von Kubernetes und OpenShift
OpenShift basiert auf Kubernetes. Es ist jedoch keine Kubernetes-Distribution, was auf die Add-ons und Erweiterungen zurückzuführen ist. Es unterscheidet sich so stark von anderen Kubernetes-Distributionen, dass es als eigene Plattform kategorisiert wird.
Da OpenShift auf Kubernetes basiert, teilen beide Technologien die gleichen Kernkonzepte. Benutzer schreiben Konfigurationsdateien, um zu definieren, wie die Plattform containerisierte Anwendungen bereitstellen soll, und sie verteilen und verwalten diese Anwendungen über Server-Cluster. Beide Plattformen unterstützen auch dieselben Konfigurationssprachen: YAML (YAML Ain’t Markup Language) und JSON (JavaScript Object Notation). Darüber hinaus bieten beide Load-Balancing- und Routing-Funktionen und können in der Public Cloud oder vor Ort betrieben werden.
OpenShift ist zudem vollständig kompatibel mit den Kubernetes-APIs und jede Anwendung, die auf Kubernetes läuft, kann auch auf OpenShift ausgeführt werden.
Unterschiede von OpenShift und Kubernetes
Die Unterschiede zwischen OpenShift und Kubernetes liegen hauptsächlich in der Unterstützung von OpenShift für Tools und Erweiterungen.
In den meisten Kubernetes-Distributionen ist kubectl das wichtigste Kommandozeilen-Tool (Command Line Interface, CLI) für das Cluster-Management. Die Kommandozeile von OpenShift heißt oc. Sie ist in den meisten Punkten mit kubectl identisch, bietet aber zusätzliche Funktionen, die Aufgaben wie das Bereitstellen von Container-Images und das Anmelden an Cluster vereinfachen.
OpenShift setzt außerdem auf Fluentd, Elasticsearch und Kibana für das Protokollmanagement. Kubernetes ist mit diesen und einer Vielzahl anderer Logging-Tools kompatibel – im Falle von Kubernetes haben Anwender also die Wahl, wie sie das Logging verwalten wollen. Zusätzlich bietet OpenShift eine integrierte Web-Management-Konsole. Für Kubernetes gibt es ein ähnliches Interface als optionales Add-on, es ist jedoch kein Kernbestandteil von Kubernetes.
Neben den Unterschieden bei den Werkzeugen unterscheidet sich OpenShift von nativem Kubernetes auch dadurch, dass OpenShift ein Red-Hat-Produkt ist, das nur von Red Hat erhältlich ist, während eine Vielzahl von Organisationen und Unternehmen Kubernetes-Distributionen anbieten. Wie bereits erwähnt, bietet Red Hat jedoch OpenShift als Service auf verschiedenen Public-Cloud-Plattformen an.
OpenShift-Knoten müssen außerdem mit Red Hat Enterprise Linux CoreOS (RHEL) bereitgestellt werden, während Kubernetes-Knoten mit jedem Linux-basierten Betriebssystem betrieben werden können – und im Falle von Worker-Knoten auch mit Windows.