Kubernetes Kyverno
Reading time: 1 minute
इस पृष्ठ के मूल लेखक हैं Guillaume
परिभाषा
Kyverno एक ओपन-सोर्स, नीति प्रबंधन ढांचा है जो Kubernetes के लिए संगठनों को अपनी पूरी Kubernetes अवसंरचना में नीतियों को परिभाषित, लागू और ऑडिट करने की अनुमति देता है। यह Kubernetes क्लस्टरों की सुरक्षा, अनुपालन और शासन प्रबंधन के लिए एक स्केलेबल, विस्तारित और अत्यधिक अनुकूलन योग्य समाधान प्रदान करता है।
उपयोग के मामले
Kyverno का उपयोग विभिन्न उपयोग के मामलों में किया जा सकता है, जिसमें:
- नेटवर्क नीति लागू करना: Kyverno का उपयोग नेटवर्क नीतियों को लागू करने के लिए किया जा सकता है, जैसे कि पॉड या सेवाओं के बीच ट्रैफ़िक को अनुमति देना या अवरुद्ध करना।
- गुप्त प्रबंधन: Kyverno का उपयोग गुप्त प्रबंधन नीतियों को लागू करने के लिए किया जा सकता है, जैसे कि गुप्तों को एक विशिष्ट प्रारूप या स्थान में संग्रहीत करने की आवश्यकता।
- पहुँच नियंत्रण: Kyverno का उपयोग पहुँच नियंत्रण नीतियों को लागू करने के लिए किया जा सकता है, जैसे कि उपयोगकर्ताओं को कुछ संसाधनों तक पहुँचने के लिए विशिष्ट भूमिकाएँ या अनुमतियाँ रखने की आवश्यकता।
उदाहरण: ClusterPolicy और नीति
मान लीजिए कि हमारे पास कई नामस्थान वाले Kubernetes क्लस्टर हैं, और हम एक नीति लागू करना चाहते हैं जो default
नामस्थान में सभी पॉड्स के पास एक विशिष्ट लेबल होना आवश्यक है।
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
जब default
namespace में app: myapp
लेबल के बिना एक pod बनाया जाता है, तो Kyverno अनुरोध को ब्लॉक कर देगा और एक त्रुटि संदेश लौटाएगा जो यह दर्शाता है कि pod नीति आवश्यकताओं को पूरा नहीं करता है।