Training Module
Kubernetes Admission Controllers & Policy Engines — Kyverno vs. OPA Gatekeeper
Dieses 120-Minuten-Modul löst eine Ankündigung ein, die im Modul
“Kubernetes Security Vertiefung” bewusst offen blieb: Pod Security
Admission, das ihr dort kennengelernt habt, kann nur die drei
vordefinierten Profile privileged/baseline/
restricted durchsetzen – für eine eigene
Regel wie “jeder Pod braucht ein Label team” reicht das
nicht. Ihr startet deshalb mit dem gemeinsamen
Unterbau: Sowohl Pod Security Admission als auch die beiden
Policy-Engines dieses Moduls klinken sich in denselben
Admission-Webhook-Prozess ein – ein Objekt wird geprüft, bevor es
angelegt wird. Dieser Mechanismus wird hier als bekannt
vorausgesetzt und nicht erneut erklärt. Danach stellt ihr
Kyverno und OPA Gatekeeper einander
konzeptionell gegenüber: Kyverno beschreibt eine Regel als reine
ClusterPolicy in YAML mit Pattern-Matching gegen das
Objekt – wer Kubernetes-Manifeste lesen kann, liest auch eine
Kyverno-Policy. OPA Gatekeeper trennt die Regel in zwei Objekte: eine
ConstraintTemplate mit der eigentlichen Logik in der
Policy-Sprache Rego, und eine
Constraint-Instanz, die diese Logik mit konkreten
Parametern auf bestimmte Objekte anwendet – wiederverwendbare Logik,
getrennt von ihrer Konfiguration. Im ersten Hands-on installiert ihr
Kyverno und schreibt eine ClusterPolicy, die genau eine
Regel durchsetzt: jeder Pod braucht das Label team,
sonst wird er live abgewiesen. Im zweiten Hands-on löst ihr
dieselbe Regel mit OPA Gatekeeper – derselbe
Regelverstoß, live gesehen, aber über ConstraintTemplate
und Rego statt über ein YAML-Pattern. Genau dieser direkte Vergleich
an derselben Regel macht den Unterschied zwischen beiden Ansätzen
greifbar, statt ihn nur zu behaupten. Zum Abschluss ein kurzer
Ausblick ohne eigenes Hands-on auf CI/CD-Policy-Gates – dieselbe
Regel bereits vor dem Deployment in der Pipeline prüfen, statt erst
am Cluster – vertieft im eigenständigen Aufbaumodul
CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest.
Explizit ohne Tool-Empfehlung: Dieses Modul sagt
nicht, welche der beiden Engines “Standard” ist oder einen größeren
Marktanteil hat – das bleibt unbelegt und unbenannt, ihr lernt beide
Ansätze gleichrangig kennen und entscheidet selbst. Voraussetzung ist
das Modul “Kubernetes Security Vertiefung” – RBAC/ServiceAccounts aus
“Kubernetes Administration” und der Admission-Mechanismus selbst
gelten als bekannt und werden hier nicht wiederholt. Die Session
läuft vollständig lokal über Minikube, ohne Cloud-Account und ohne
Kostenwirkung.
Format
120 Minuten, live (remote oder vor Ort), Input & zwei Hands-on-Übungen
Teilnehmende
Ops/Admins und Platform-Teams, die eigene Cluster-Regeln durchsetzen wollen, die über die drei festen Pod-Security-Profile hinausgehen
Voraussetzungen
Abgeschlossenes Modul “Kubernetes Security Vertiefung” oder gleichwertige Vorkenntnisse zu Pod Security Admission, lauffähige lokale Docker-Umgebung für Minikube
Warum dieses Training für deine Organisation wirkt
Drei feste Profile reichen selten aus
Pod Security Admission durchsetzt privileged/
baseline/restricted – aber nicht “jedes
Image muss aus unserer Registry stammen” oder “jedes Deployment
braucht mindestens zwei Replicas”. Für eigene Regeln braucht es
eine Policy-Engine.
Zwei Sprachen, ein Mechanismus
Kyverno bleibt bei YAML, das ihr aus jedem Manifest kennt. OPA Gatekeeper trennt Logik (Rego) von Konfiguration (Constraint). Wer beide live gegen dieselbe Regel gesehen hat, wählt begründet statt nach Bauchgefühl.
Ablehnung vor dem Schaden, nicht danach
Beide Engines lehnen einen Regelverstoß ab, bevor der Pod überhaupt geplant wird – derselbe Grundsatz, den ihr bereits von Pod Security Admission kennt, jetzt für Regeln, die ihr selbst schreibt.
Was Teilnehmende mitnehmen
- Den gemeinsamen Admission-Webhook-Mechanismus benennen, den Pod Security Admission und beide Policy-Engines gleichermaßen nutzen – ohne ihn erneut im Detail herzuleiten.
- Kyverno und OPA Gatekeeper konzeptionell unterscheiden: YAML-
ClusterPolicymit Pattern-Matching gegenConstraintTemplate(Rego-Logik) plusConstraint(Parameter-Instanz). - Kyverno installieren und eine
ClusterPolicyschreiben, die ein Pflicht-Label durchsetzt, live gegen einen Verstoß und einen konformen Pod testen. - OPA Gatekeeper installieren und dieselbe Pflicht-Label-Regel als
ConstraintTemplateplusConstraintnachbauen, live gegen denselben Regelverstoß testen. - Beide Ansätze anhand derselben Regel direkt vergleichen, statt sich auf eine Behauptung zu verlassen – ohne Tool-Empfehlung oder Marktanteilsangabe.
- CI/CD-Policy-Gates als Ausblick einordnen: dieselbe Regel bereits in der Pipeline statt erst am Cluster prüfen – bewusst ohne eigenes Hands-on.
Für wen dieses Modul ideal ist
- • Ops/Admins mit abgeschlossenem Modul “Kubernetes Security Vertiefung” oder gleichwertigen Vorkenntnissen zu Pod Security Admission
- • Platform-Teams, die demnächst eigene Cluster-Regeln (Registry-Herkunft, Pflicht-Labels, Replica-Mindestzahl) durchsetzen sollen, die keine feste Pod-Security-Standard-Regel abdeckt
- • Alle, die vor einer Tool-Entscheidung zwischen Kyverno und OPA Gatekeeper beide Ansätze einmal selbst gegen dieselbe Regel gesehen haben wollen
Rahmendaten
- • Dauer: 120 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, zwei Hands-on-Übungen (Kyverno-ClusterPolicy, OPA-Gatekeeper-ConstraintTemplate) gegen dieselbe Regel, CI/CD-Gate-Ausblick als reiner Konzeptteil
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes Security Vertiefung”, lauffähige lokale Docker-Umgebung für Minikube, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Admission-Mechanismus als gemeinsamer Unterbau (15 min): Rückverweis auf den in “Kubernetes Security Vertiefung” bereits gelehrten Admission-Webhook-Prozess, den Pod Security Admission und beide Policy-Engines gleichermaßen nutzen – hier nicht erneut hergeleitet.
Kyverno vs. OPA Gatekeeper: zwei Wege, dieselbe Frage zu beantworten (15 min): YAML-
ClusterPolicymit Pattern-Matching gegenConstraintTemplate(Rego-Logik) plusConstraint(Parameter-Instanz), ohne Tool-Empfehlung.Hands-on 1: Kyverno ClusterPolicy gegen einen Regelverstoß (30 min, Hands-on): Kyverno installieren, eine
ClusterPolicymit Pflicht-Labelteamschreiben, einen Pod ohne Label live abgewiesen sehen, danach einen konformen Pod anwenden.Hands-on 2: OPA Gatekeeper gegen dieselbe Regel (30 min, Hands-on): Kyverno aufräumen, OPA Gatekeeper installieren, dieselbe Pflicht-Label-Regel als
ConstraintTemplateplusConstraintnachbauen, denselben Regelverstoß live abgewiesen sehen.Einordnung & Ausblick CI/CD-Policy-Gates (15 min): beide Ansätze direkt gegenüberstellen, danach ein Ausblick ohne Hands-on: dieselbe Regel bereits in der Pipeline statt erst am Cluster prüfen – vertieft im Aufbaumodul CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest.
Puffer/Q&A (15 min): offene Fragen, individuelle Vertiefung je nach Governance-Anforderung der Teilnehmenden.
Dieses Modul setzt das Aufbaumodul Kubernetes Security Vertiefung — Pod Security Admission & Secrets-Härtung voraus. Der dort gelehrte Admission-Webhook-Mechanismus (ein Objekt wird geprüft, bevor es angelegt wird) und die Pod Security Standards als feste Referenz gelten hier als bekannt und werden nicht erneut eingeführt – dieses Modul baut den Rückverweis explizit ein, statt den Mechanismus zu wiederholen.
RBAC, ServiceAccount, Role/
RoleBinding aus dem Modul
Kubernetes Administration — RBAC, Node-Betrieb und Cluster-Netzwerk
gelten ebenfalls als bekannt. Die Installationsmanifeste von
Kyverno und OPA Gatekeeper bringen die dafür nötigen
ClusterRole/ClusterRoleBinding-Objekte
bereits fertig mit – Teilnehmende schreiben in diesem Modul keine
eigene RBAC-Konfiguration, das ist nicht Ziel der Übung.
Was dieses Modul bewusst nicht behandelt: die
Integration einer Policy-Prüfung in eine CI/CD-Pipeline (z. B.
Kyverno CLI oder conftest als Pre-Merge-Gate) – das
behandelt das eigenständige Aufbaumodul
CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest,
hier nur als Ausblick ohne eigenes Hands-on angesprochen. Ebenfalls
nicht Thema: eine Tool-Empfehlung zwischen Kyverno und OPA
Gatekeeper oder eine Aussage zu Marktanteilen – dieses Modul zeigt
beide Ansätze gleichrangig und überlässt die Entscheidung eurer
Organisation.
Hands-on Inhalte (Auszug)
Kyverno installieren & ClusterPolicy schreiben
- Kyverno per Helm-Chart in den Namespace
kyvernoinstallieren und den Admission-Controller-Rollout abwarten - Eine
ClusterPolicyanwenden, die für jeden Pod das Labelteamper YAML-Pattern erzwingt
Regelverstoß mit Kyverno live sehen
- Einen Pod ohne
team-Label anwenden und die Kyverno-Admission-Fehlermeldung live lesen - Denselben Pod mit gesetztem Label erneut anwenden und den Erfolg bestätigen – gleiche Policy, gleicher Namespace, ein Label entscheidet
OPA Gatekeeper installieren & ConstraintTemplate schreiben
- Kyverno aufräumen, OPA Gatekeeper per offiziellem Manifest installieren und den Controller-Rollout abwarten
- Eine
ConstraintTemplatemit Rego-Logik für Pflicht-Labels definieren, danach eineConstraint-Instanz mit dem Parameterteamanwenden
Dieselbe Regelverletzung mit Gatekeeper live sehen
- Denselben Pod ohne
team-Label anwenden und die Gatekeeper-Admission-Fehlermeldung mit der Kyverno-Fehlermeldung von eben vergleichen - Denselben konformen Pod erneut anwenden und den Erfolg bestätigen – identische Regel, zwei unterschiedliche Formulierungen
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der ersten ClusterPolicy/Constraint bis zum live bestätigten Regelverstoß) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen