Kubernetes Kyverno

Ο αρχικός συγγραφέας αυτής της σελίδας είναι Guillaume

Ορισμός

Το Kyverno είναι ένα ανοιχτού κώδικα, πλαίσιο διαχείρισης πολιτικών για το Kubernetes που επιτρέπει στους οργανισμούς να ορίζουν, να επιβάλλουν και να ελέγχουν πολιτικές σε όλη την υποδομή Kubernetes τους. Παρέχει μια κλιμακούμενη, επεκτάσιμη και εξαιρετικά προσαρμόσιμη λύση για τη διαχείριση της ασφάλειας, της συμμόρφωσης και της διακυβέρνησης των κλάστερ Kubernetes.

Χρήσεις

Το Kyverno μπορεί να χρησιμοποιηθεί σε μια ποικιλία περιπτώσεων χρήσης, συμπεριλαμβανομένων:

  1. Επιβολή Πολιτικής Δικτύου: Το Kyverno μπορεί να χρησιμοποιηθεί για την επιβολή πολιτικών δικτύου, όπως η επιτρεπόμενη ή η αποκλεισμένη κυκλοφορία μεταξύ pods ή υπηρεσιών.

  2. Διαχείριση Μυστικών: Το Kyverno μπορεί να χρησιμοποιηθεί για την επιβολή πολιτικών διαχείρισης μυστικών, όπως η απαίτηση τα μυστικά να αποθηκεύονται σε συγκεκριμένη μορφή ή τοποθεσία.

  3. Έλεγχος Πρόσβασης: Το Kyverno μπορεί να χρησιμοποιηθεί για την επιβολή πολιτικών ελέγχου πρόσβασης, όπως η απαίτηση οι χρήστες να έχουν συγκεκριμένους ρόλους ή άδειες για να έχουν πρόσβαση σε ορισμένους πόρους.

Παράδειγμα: ClusterPolicy και Πολιτική

Ας υποθέσουμε ότι έχουμε ένα κλάστερ Kubernetes με πολλαπλά namespaces και θέλουμε να επιβάλουμε μια πολιτική που απαιτεί όλα τα pods στο default namespace να έχουν μια συγκεκριμένη ετικέτα.

ClusterPolicy

Μια ClusterPolicy είναι μια πολιτική υψηλού επιπέδου που ορίζει τη συνολική πρόθεση της πολιτικής. Σε αυτή την περίπτωση, η ClusterPolicy μας μπορεί να μοιάζει με αυτό:

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

Όταν δημιουργείται ένα pod στο default namespace χωρίς την ετικέτα app: myapp, το Kyverno θα μπλοκάρει το αίτημα και θα επιστρέψει ένα μήνυμα σφάλματος που υποδεικνύει ότι το pod δεν πληροί τις απαιτήσεις πολιτικής.

References

Last updated