Kubernetes Kyverno

Der ursprüngliche Autor dieser Seite ist Guillaume

Definition

Kyverno ist ein Open-Source-Rahmenwerk zur Richtlinienverwaltung für Kubernetes, das es Organisationen ermöglicht, Richtlinien über ihre gesamte Kubernetes-Infrastruktur zu definieren, durchzusetzen und zu überprüfen. Es bietet eine skalierbare, erweiterbare und hochgradig anpassbare Lösung zur Verwaltung der Sicherheit, Compliance und Governance von Kubernetes-Clustern.

Anwendungsfälle

Kyverno kann in einer Vielzahl von Anwendungsfällen eingesetzt werden, einschließlich:

  1. Durchsetzung von Netzwerkrichtlinien: Kyverno kann verwendet werden, um Netzwerkrichtlinien durchzusetzen, wie z.B. das Erlauben oder Blockieren von Datenverkehr zwischen Pods oder Diensten.

  2. Geheimnisverwaltung: Kyverno kann verwendet werden, um Richtlinien zur Geheimnisverwaltung durchzusetzen, wie z.B. die Anforderung, dass Geheimnisse in einem bestimmten Format oder an einem bestimmten Ort gespeichert werden.

  3. Zugriffskontrolle: Kyverno kann verwendet werden, um Richtlinien zur Zugriffskontrolle durchzusetzen, wie z.B. die Anforderung, dass Benutzer bestimmte Rollen oder Berechtigungen haben, um auf bestimmte Ressourcen zuzugreifen.

Beispiel: ClusterPolicy und Policy

Angenommen, wir haben ein Kubernetes-Cluster mit mehreren Namespaces, und wir möchten eine Richtlinie durchsetzen, die erfordert, dass alle Pods im default Namespace ein bestimmtes Label haben.

ClusterPolicy

Eine ClusterPolicy ist eine hochrangige Richtlinie, die die allgemeine Absicht der Richtlinie definiert. In diesem Fall könnte unsere ClusterPolicy so aussehen:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-label
spec:
rules:
- validate:
message: "Pods in the default namespace must have the label 'app: myapp'"
match:
any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
- any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
validationFailureAction: enforce

Wenn ein Pod im default-Namespace ohne das Label app: myapp erstellt wird, wird Kyverno die Anfrage blockieren und eine Fehlermeldung zurückgeben, die angibt, dass der Pod die Anforderungen der Richtlinie nicht erfüllt.

References

Last updated