← Übersicht  ·  Skripte & Dateien  ·  OpenShift-Atlas  ·  cloud-host · OpenShift · Rolle

DevOps mit OpenShift: die Rolle des Cloud-Host

Kein weiteres Einzelthema, sondern der Rahmen darüber: was die Rolle, die diese Sammlung Cloud-Host nennt, bei OpenShift wissen, tun und dauerhaft betreiben muss – mit einem durchgängigen Beispiel von Build bis Backup und Checklisten für Einstieg, Alltag und Notfall. Jeder Punkt verlinkt auf die Anleitung, die ihn wirklich zeigt.

Stand: 14. September 2026 OKD 4.x / OCP 4.x Rahmen über allen OpenShift-Anleitungen

Einordnung: Diese Seite erklärt keinen einzelnen Befehl neu. Sie sortiert die vorhandenen OpenShift-Anleitungen dieser Sammlung in drei Fragen – was muss ich wissen, was muss ich tun, was muss ich dauerhaft betreiben – und zeigt an einem einzigen durchgezogenen Beispiel, wie die Teile zusammenhängen. Für die Tiefe (Diagramme, Hands-on, Fallen) führt jeder Link direkt in die passende Anleitung.

1 Die Rolle: wissen, tun, betreiben

Der Cloud-Host ist nicht das App-Team. Er baut und betreibt die Plattform, auf der Anwendungen laufen – die Anwendung selbst (hier: die Referenz-App Bibliothek-Enterprise, im Namespace library) bleibt eine eigene Baustelle.

WissenOpenShift-Konzepte verstehen, bevor ein Befehl etwas kaputt macht – Projects, RBAC, SCC, Netzwerk, Storage, Build, Operatoren, GitOps, Betrieb
Tundie wiederkehrenden Handgriffe: Namespace anlegen, Build auslösen, Rollout prüfen, Zertifikat erneuern, Node warten
Betreibender Dauerzustand, den „Tun“ erzeugt: Monitoring, Backups, Updates, Kosten, Notfallplan – nicht einmalig, sondern immer wieder
  • Wissen ohne Tun bleibt Theorie – deshalb verlinkt jeder Wissenspunkt unten auf eine Hands-on-Anleitung, nicht nur auf eine Definition
  • Tun ohne Betreiben ist ein einmaliger Erfolg, der beim nächsten Vorfall wieder bei null anfängt – deshalb Kapitel 5 als eigener Abschnitt
  • diese Sammlung deckt alle drei Ebenen bereits ab, nur verstreut über knapp 30 OpenShift-Anleitungen – diese Seite ist die Landkarte dazu

2 Wissenskatalog

Acht Wissensblöcke, jeder mit der Anleitung, die ihn hands-on zeigt. Reihenfolge wie im OpenShift-Atlas: A vor B vor C, weil SCC ServiceAccounts braucht und GitOps Operatoren.

Blockwas dazugehörtAnleitung
FundamentProject vs. Namespace, oc vs. kubectl, Authentifizierung, RBAC, ServiceAccounts, SCCProject/oc/ServiceAccount, Kern/Auth, RBAC/SCC
WorkloadsDeployment/DeploymentConfig, Service, Route, Probes, Scheduling, Quotas, HelmService/Route/Probes, Helm, Workload-Feinschliff
KonfigurationConfigMap vs. Secret, Herkunft, Rotation, Konfiguration im laufenden Cluster nachschauenSecrets, Konfiguration nachschauen
Build-KetteImageStreams, BuildConfig, S2I, interne Registry, Image-Trigger bis zum Rolloutdie Build-Kette, S2I bis Rollout
OperatorenOLM-Objekte, die vier Default-Kataloge, Custom Resources, Service-CA-ReconcileOLM, Operator-Reconcile/Service-CA
CI/CD & GitOpsTekton-Pipelines, Argo CD, Git als einzige Wahrheit, Rebuild aus GitTekton, GitOps
Netzwerk & SicherheitOVN, Router/Ingress-Sharding, Service Mesh, NetworkPolicyOVN/Router/Mesh, NetworkPolicy
BetriebMonitoring, Logging, Storage/CSI (PersistentVolumeClaim, StorageClass, die WaitForFirstConsumer-Falle), MachineConfig/MCO, Upgrades, ClusterOperators, etcd-Backup, Cluster-LifecycleCluster-Betrieb, Logging/MCO/etcd

wo üben Die passende Umgebung für fast alles ist die OKD-Single-Node – billig, per Snapshot reproduzierbar. Was ein einzelner Node nicht kann, braucht mehr Nodes: Scheduling und echtes OVN-Routing zwei, die etcd-Quorum-Übung drei – dafür reicht ein lokaler kind-Cluster, ein echter Mehrknoten-OKD (OKD 4 Mehrknoten) ist optionale Kür. CRC auf dem Laptop ist echtes OpenShift zum Vorführen, aber ohne StorageClass, ohne Upgrades und ohne MachineConfig-Rollout. Die Developer Sandbox taugt nur zum schnellen oc-Ausprobieren: dort gibt es keine Cluster-Admin-Rechte, also nichts von dem, was diese Seite unter „tun und betreiben“ beschreibt.

Drei weitere Blöcke aus dem OpenShift-Atlas sind angehängte Themen, kein Pflichtfundament, aber jeweils ihre eigene Anleitung wert: der Umbau eines Legacy-Bestands (Legacy-Modernisierung), der Umgang mit kommerzieller Middleware neben OpenShift (Middleware) und ein SPA-Frontend als eigener Workload-Typ (SPA-Frontend).

3 Tätigkeitskatalog

Das ist der wiederkehrende Teil – nicht der einmalige Cluster-Aufbau, sondern das, was ein neues Team oder ein neuer Dienst jedes Mal wieder auslöst.

  1. Namespace/Project anlegen mit Quota, LimitRange und RBAC – siehe Project/oc/ServiceAccount.
  2. Netzwerkgrenzen setzen, bevor der erste Pod läuft – Default-Deny plus gezielte Ausnahmen, siehe NetworkPolicy.
  3. SCC prüfen und binden – die restriktivste, mit der die Anwendung noch läuft, siehe RBAC/SCC.
  4. Build und Rollout einrichten – S2I/BuildConfig für einfache Fälle, Tekton für mehrstufige Pipelines, Argo CD für den eigentlichen Rollout, siehe Build-Kette und GitOps.
  5. Zustandsbehaftete Dienste per Operator statt von Hand betreiben, siehe OLM.
  6. Monitoring anschließen, bevor der erste Vorfall passiert, siehe Monitoring & Alerting.
  7. Node-Wartung planbar machen – Cordon/Drain, MachineConfigPool-Rollout, siehe Logging/MCO/etcd.
  8. Backup einrichten, bevor Daten wichtig werden – nicht danach, siehe Backup & Restore.

ReihenfolgeNetzwerkgrenzen und SCC vor dem ersten Rollout setzen, nicht danach nachziehen – ein laufender Dienst ohne Default-Deny hat in der Zwischenzeit ungeplant offen kommuniziert.

4 Zusammenspiel im Team

Der Cloud-Host baut die Plattform, das Entwickler-Team baut und betreibt seine Anwendung darauf („you build it, you run it“, Kapitel 1). Bei einer neuen Anwendung treffen sich beide Rollen an denselben acht Schritten aus Kapitel 3 – nur mit unterschiedlichem Anteil. Wer typischerweise was liefert:

SchrittCloud-Host liefertEntwickler-Team liefert
Namespace/Projectlegt an, setzt Quota/LimitRange/RBACnennt erwarteten Ressourcenbedarf (CPU/RAM, Repliken) als Grundlage für die Quota
Netzwerkgrenzensetzt Default-Denynennt die tatsächlichen Kommunikationspfade – wer redet mit wem, welche externen Abhängigkeiten
SCCbindet die passende SCCliefert ein Image, das ohne Root/UID 0 läuft – oder meldet früh, falls das nicht geht
Build/Rolloutstellt Pipeline-Vorlage und Cluster-Zugang bereitbefüllt Jenkinsfile/Manifeste, liefert Health-Endpunkte
Zustandsbehaftete Dienstebetreibt Operator/Helm-Infra (Datenbank, Kafka)liefert Schema-Migrationen und Connection-Strings
Monitoringstellt Stack und Alarmierungsweg bereitexponiert Metriken/Health-Endpunkte, nennt sinnvolle Alarm-Schwellen
Node-Wartungplant und führt durchwird informiert (Wartungsfenster), sonst keine Rolle
Backupstellt Mechanismus und Zeitplan bereitsagt, welche Daten kritisch sind und wie viel Datenverlust tolerierbar ist (RPO)

4.1 Was das Team vor dem Onboarding liefern sollte

Ein kurzer „Steckbrief“ spart beiden Seiten Rückfragen während des Onboardings:

  • Verantwortliche Person/Team und Kontaktweg
  • erwarteter Ressourcenbedarf und erwarteter Traffic
  • externe Abhängigkeiten (andere Dienste, Drittsysteme, Datenbanken)
  • Datenklassifizierung – liegen personenbezogene oder sonst sensible Daten vor
  • RPO/RTO-Erwartung (wie viel Datenverlust bzw. Ausfallzeit im Ernstfall tolerierbar ist)
  • wer im Ernstfall für die Anwendung erreichbar ist

4.2 Wer im Ernstfall zuständig ist

Die Aufteilung gilt auch im Vorfall: der Cloud-Host ist für Plattform-Vorfälle zuständig (Node down, Cluster-Operator degraded, Router ausgefallen), das Entwickler-Team für Anwendungs-Vorfälle (eigener Dienst wirft Fehler, eigene Datenbank inkonsistent). Ein Alarm, der nicht klar zugeordnet werden kann, geht zuerst an den Cloud-Host – er kennt die Plattform-Symptome und kann schnell ausschließen oder weiterleiten. Der Disaster-Runbook zeigt die Triage dafür.

in dieser SammlungCloud-Host ist hier eine einzelne Rolle für ein Lernprojekt, kein mehrköpfiges Team. Die Tabelle oben beschreibt trotzdem die reale Rollentrennung, wie sie in einem Unternehmen mit getrenntem Plattform- und App-Team ablaufen würde – wichtig zu kennen, auch wenn hier eine Person beide Seiten spielt.

5 Dauerbetrieb

Was aus „Tun“ einen Dauerzustand macht, statt eines einmaligen Erfolgs.

Flächewas laufend zu tun istAnleitung
BeobachtenErreichbarkeit, Metriken, Push-Alarme ohne Rauschen, Totmann-SchalterMonitoring & Alerting
Sichernverschlüsselte Backups, Aufbewahrung, getesteter RestoreBackup & Restore
NotfallTriage in den ersten 5 Minuten, Runbooks je Szenario, Wiederaufbau von NullDisaster-Runbook
AbsichernServer-Härtung am Node, Secrets-Rotation im Cluster, Netzwerkgrenzen nachziehenServer-Hardening, Secrets in OpenShift, NetworkPolicy
Aktuell haltenCluster-Updates, MachineConfig-Rollouts, ClusterOperator-StatusCluster-Betrieb
Ausliefernjeder Merge baut, testet und rollt automatisiert ausCI/CD, GitOps
Kosten kennenwas der Cluster laufend kostet, was ohne laufenden Server trotzdem weiterkostetKosten & Budget

Die einzelnen Flächen sind unabhängige Anleitungen, weil sie unabhängig versagen können: Monitoring kann grün sein, während das letzte Backup nie getestet wurde. Deshalb gehört eine eigene Zeile pro Fläche in jede Betriebs-Checkliste (Kapitel 7), nicht ein pauschales „läuft“.

Lücke, ehrlich benanntKapazität und Skalierung fehlen bewusst in der Tabelle: der HorizontalPodAutoscaler (mehr Pod-Repliken je nach Last) und der Cluster-Autoscaler (mehr Nodes je nach Last) sind in dieser Sammlung noch keine eigene Anleitung – auf einer Single-Node-Umgebung gibt es ohnehin nur einen Node, den man skalieren könnte. Auf einem echten Mehrknoten-Cluster (OKD 4 Mehrknoten) wäre das eine eigene Betriebsfläche, die hier noch fehlt.

6 Durchgängiges Beispiel

Sechs Stationen, ein Namespace – library, das echte Bibliothek-Enterprise-Projekt dieser Sammlung, nicht ein erfundener Beispieldienst. Jede Station zeigt das Kern-Manifest, sagt ehrlich, was davon bereits real läuft und was ein allgemeines OpenShift-Muster ist, und verlinkt die Anleitung mit dem vollständigen Hands-on.

6.1 Build – Quellcode wird Image

Real läuft der Bibliothek-Build heute außerhalb des Clusters: ein Jenkinsfile baut die 9 Images (die Spring-Dienste samt config-server und das Frontend) mit podman build und schiebt sie per podman push in OKDs interne Registry, Pfad library/catalog-service:<git-sha>. Im Cluster gibt es dadurch keinen BuildConfig und keinen Build-Pod, der Cluster-CPU verbraucht – siehe Bibliothek-Enterprise via Jenkins auf OKD.

Das OpenShift-native Gegenstück heißt S2I (Source-to-Image): der Cluster baut aus dem Git-Repository selbst ein Image, ohne dass der Dienst ein eigenes Dockerfile pflegt. Bibliothek nutzt es bewusst nicht, das Muster selbst zeigt S2I bis Rollout an einer kleinen Node.js-Quelle im selben Namespace:

Cluster · Bash · S2I-Muster
oc new-app https://github.com/sclorg/nodejs-ex -n library --name=demo-build
oc start-build demo-build --follow
oc get istag -n library

6.2 Aussetzen – Service, Route, Probes

Erreichbarkeit intern über den Service (die stabile interne Adresse für Pods, unabhängig von deren wechselnden IPs), extern über die Route (OpenShifts Objekt für Layer-7-Zugriff von außen, vergleichbar mit einem Kubernetes-Ingress), Gesundheit über Readiness- und Liveness-Probes. Details, Fallen bei Probe-Timing: Service/Route/Probes.

ObjektAufgabe
Servicestabile interne Adresse für die Pods hinter dem Label-Selektor
Routeexterner Layer-7-Zugriff, TLS-Terminierung edge/passthrough/reencrypt
Readiness-Probesteuert, ob Traffic ankommt
Liveness-Probesteuert, ob der Container neu gestartet wird

6.3 Ausliefern – GitOps statt oc apply von Hand

GitOps heißt: Git ist die einzige Wahrheit, nicht der jeweils letzte Befehl auf dem Cluster. Argo CD (bei OpenShift als „OpenShift GitOps“-Operator installiert) gleicht den Cluster laufend an ein Git-Repository an, eine manuelle Änderung am Cluster wird bei selfHeal automatisch zurückgesetzt. Das reale Beispiel dieses Projekts heißt demo-gitops und zeigt bewusst noch auf ein öffentliches Beispiel-Repository statt auf die Bibliothek selbst – voller Aufbau inklusive Tekton-Pipeline davor: GitOps, Tekton.

Datei · YAML
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: demo-gitops
  namespace: openshift-gitops
spec:
  project: default
  source:
    repoURL: https://github.com/openshift/origin.git
    targetRevision: HEAD
    path: examples/hello-openshift
  destination:
    server: https://kubernetes.default.svc
    namespace: library
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

6.4 Operatoren – wo Bibliothek heute steht

Ehrlich statt schöngeredet: Bibliothek betreibt seine zustandsbehafteten Infra-Dienste (Datenbank, Kafka) heute über Bitnami-Helm-Charts, nicht über einen Operator (einen im Cluster laufenden Controller, der eine Software eigenständig installiert, aktualisiert und bei Fehlern repariert). Der erste echte Operator-Kandidat des Projekts ist der bereits erwähnte OpenShift-GitOps-Operator selbst – er kommt über OLM (den Operator Lifecycle Manager, der Kataloge, Freigaben und Upgrades von Operatoren verwaltet). Der volle Weg vom Katalog bis zur laufenden ClusterServiceVersion, hands-on an genau diesem Operator: OLM. Unabhängig von Helm oder Operator braucht die Datenbank in beiden Fällen dieselbe Grundlage: eine PersistentVolumeClaim, sonst sind ihre Daten beim nächsten Pod-Neustart weg. Die dazugehörige Falle (WaitForFirstConsumer – die StorageClass bindet den Speicher erst, wenn der Pod feststeht) zeigt Cluster-Betrieb.

Cluster · Bash
oc get packagemanifests -n openshift-marketplace | grep -i gitops
oc get csv -n openshift-gitops-operator

6.5 Absichern – Netzwerkgrenzen und Secrets

Default-Deny zuerst (kein Pod im Namespace darf etwas empfangen oder senden), dann gezielte Ausnahmen zwischen den Diensten desselben Namespace. Geheimnisse kommen nicht von Hand in ein Secret (Kubernetes-Objekt für sensible Werte, nur Base64-kodiert, kein Ersatz für echten Zugriffsschutz), sondern über einen kontrollierten Fluss: NetworkPolicy, Secrets.

Datei · YAML
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: library
spec:
  podSelector: {}
  policyTypes: ["Ingress", "Egress"]

6.6 Beobachten und sichern

Ohne Monitoring wird ein Ausfall erst durch eine Nutzermeldung sichtbar, ohne getesteten Restore ist ein Backup ein unbewiesenes Versprechen. Beide Enden sind eigene Anleitungen: Monitoring & Alerting, Backup & Restore, im Ernstfall Disaster-Runbook.

Kreis geschlossenBuild, dann Aussetzen, dann Ausliefern, dann der ehrliche Operator-Stand, dann Absichern, zuletzt Beobachten und Sichern. Jede Station ist unabhängig testbar, und jede hat in dieser Sammlung ihre eigene, viel ausführlichere Anleitung – diese Seite zeigt nur, wie sie ineinandergreifen.

7 Checklisten

Zum Abhaken, nicht zum Lesen. Jede Zeile zeigt auf die Anleitung, die den Befehl oder den Hintergrund liefert.

7.1 Einstieg für einen neuen Cloud-Host

7.2 Täglich

  • [ ] offene kritische Alarme durchgesehen
  • [ ] oc get clusterversion und oc get co auf Degraded geprüft
  • [ ] Backup-Job der letzten Nacht geprüft (Backup & Restore)

7.3 Wöchentlich

  • [ ] Node-Kapazität und Trend geprüft
  • [ ] Zertifikats-Ablaufdaten geprüft
  • [ ] offene Onboarding-Anfragen abgearbeitet (Kapitel 3)

7.4 Monatlich

7.5 Vor jedem neuen Dienst

  • [ ] Default-Deny-NetworkPolicy gesetzt, Ausnahmen dokumentiert
  • [ ] SCC ist die restriktivste, mit der der Dienst noch läuft (RBAC/SCC)
  • [ ] Secrets kommen aus dem kontrollierten Fluss, nicht von Hand (Secrets)
  • [ ] Build- und Rollout-Weg steht (Build-Kette, GitOps)

Die Kurzfassung

Wissenacht Blöcke, Reihenfolge folgt Abhängigkeiten – Fundament vor Workloads vor Konfiguration vor Build vor Operatoren vor GitOps vor Netzwerk vor Betrieb
Tunacht wiederkehrende Handgriffe je neuem Dienst, Netzwerkgrenzen und SCC vor dem ersten Rollout
ZusammenspielCloud-Host liefert Plattform und Leitplanken, Team liefert Anwendungswissen – im Vorfall zuständig nach Plattform- oder Anwendungsfehler getrennt
Betreibensieben unabhängige Flächen, die unabhängig versagen können – jede eigene Checkliste, kein pauschales „läuft“