Zurück zur Startseite

Unterschiede zwischen OpenShift und Kubernetes aus Entwicklersicht

Das Ziel dieses Artikels ist es, Sie durch die Ressourcen zu führen, welche in OpenShift verfügbar sind, aber nicht bei einer Kubernetes-Installation enthalten sind.

Unterschiede innerhalb Ihrer Anwendung

Projekt und Namensraum

OpenShift spricht von Projekten, wo Kubernetes von Namespaces spricht. Was die Anwendungen betrifft, sind sie identisch.

Migration zu Kubernetes

Abgesehen von einer Namensänderung gibt es hier nichts zu tun!

Route und Ingress

In OpenShift verwenden Sie Routes, um Ihre Dienste nach aussen verfügbar zu machen. Da wir uns für Sie um DNS und das OpenShift-Routing kümmern, müssen Sie in der Regel nur eine Route-Ressource zu Ihrem Projekt hinzufügen, und schon können Sie loslegen!

In Kubernetes gibt es keine “Routen”. Stattdessen verwenden Sie die Ingress Ressource.

Migration zu Kubernetes

Sie müssen lediglich Ihre Route-Ressourcen in Ingress-Ressourcen konvertieren.

Route Beispiel
apiVersion: route.openshift.io/v1
kind: Route
metadata:
  annotations:
    kubernetes.io/tls-acme: "true"
  name: my-route
spec:
  host: my-wonderful-app.com
  tls:
    insecureEdgeTerminationPolicy: Redirect
    termination: edge
  to:
    kind: Service
    name: my-service
    weight: 100
  wildcardPolicy: None

Ingress Beispiel
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
  name: my-ingress
spec:
  rules:
  - host: my-wonderful-app.com
    http:
      paths:
      - backend:
          serviceName: my-service
          servicePort: 80
  tls:
  - hosts:
    - my-wonderful-app.com
    secretName: my-wonderful-app.com-cert

Alles in allem sind sich die zwei Plattformen ziemlich ähnlich. Es ist anzumerken, dass OpenShift bei Nine openshift-acme zur Verwaltung von TLS-Zertifikaten verwendet, während man sich bei Kubernetes typischerweise auf andere Projekte verlässt, wobei cert-manager der aktuelle Standard ist.

DeploymentConfig und Deployment

Eine Nebeninfo: OpenShift verwendete DeploymentConfig bevor Kubernetes Deployments hatte!

OpenShift unterstützt beide Möglichkeiten, ReplicaSets und Pods zu erstellen, welche Ihre Anwendungen enthalten sie im Fehlerfall neu starten, skalieren, etc.

Kubernetes kennt im Verleich zu OpenShift nur Deployments.

Migration zu Kubernetes

Da beide von OpenShift unterstützt werden, wäre es am einfachsten, mit Deployments anzufangen. Wenn Helm-Charts zur Bereitstellung von Anwendungen eingesetzt werden, ist dies der Fall, da Helm-Charts meistens eine Deployment-Ressource verwenden.

Wenn Sie bereits DeploymentConfig Ressourcen verwenden, müssen Sie diese in Deployment Ressourcen umwandeln.

BuildConfig

OpenShift enthält eine Ressource namens BuildConfig, die Ihnen dabei helfen soll, Docker-Images aus Ihrem Quellcode zu erstellen.

Etwas vergleichbares ist in Kubernetes nicht vorhanden.

Migration zu Kubernetes

Verwenden Sie nicht BuildConfig. Erstellen Sie stattdessen Ihre Docker-Images außerhalb Ihres Clusters (z.B. über eine CI/CD-Pipeline).

Unterschiede außerhalb Ihrer Anwendung

Diese wirken sich nicht direkt auf Ihre Anwendungen aus, sondern auf Ihren aktuellen Workflow.

oc and kubectl

oc und kubectl sind beides Tools, mit denen Sie über die Befehlszeile mit Ihrem Cluster interagieren können.

Sie sind in der Praxis sehr ähnlich, und es sollte nahtlos sein, von einem zum anderen zu wechseln (vorausgesetzt, Sie verwenden keine der zuvor in diesem Artikel erwähnten Ressourcen).

OpenShift UI und Kubernetes UI

Da es sich bei OpenShift und Kubernetes um zwei verschiedene Produkte handelt, gibt es auch zwei verschiedene Benutzeroberflächen.

Die OpenShift-Benutzeroberfläche ist ein wesentlicher Bestandteil des Produkts. Kubernetes selbst hat standardmäßig keine Benutzeroberfläche und die Hauptmethode zur Steuerung eines k8s-Clusters ist über kubectl auf der CLI.

Wir installieren ein Dashboard in Ihrem Kubernetes-Cluster, welches aber mehr zur Überprüfung als zur Steuerung Ihres Clusters verwendet werden soll.

Schlussfolgerung

OpenShift und Kubernetes sind sich ziemlich ähnlich, wenn es um die Bereitstellung von Anwendungen in Containern geht. Bitte beachten Sie aber die Ausnahmen, welche in diesem Artikel erwähnt wurden.

Sollten Sie Unterstützung bei der Umstellung auf Kubernetes benötigen, zögern Sie nicht, uns zu kontaktieren: support@nine.ch.

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 support@nine.ch