Erste Schritte mit Kubernetes und Kyverno Policy Management auf der OpenShift Container Platform

https://habr.com/ru/company/first/blog/676302/image

Dieser Artikel zeigt Ihnen die ersten Schritte mit Kyverno auf der OpenShift-Containerplattform, mit der Sie die Sicherheit erhöhen, fortschrittliche Technologien einfach implementieren und andere schwierige Aufgaben lösen können.


Red Hat® OpenShift ist eine weit verbreitete Kubernetes-basierte Containerplattform. Mit der Einführung von OpenShift sehen sich Entwickler oft mit der Notwendigkeit konfrontiert, eine Konfiguration automatisch zu aktualisieren oder zu erstellen sowie die Sicherheit zu gewährleisten und bewährte Verfahren zu übernehmen.

Im Wesentlichen versuchen sie, die notwendigen Sicherheitsmechanismen zu schaffen, damit Entwickler OpenShift weiterhin verwenden können, ohne andere Anwendungen zu beeinträchtigen und ohne durch Fehlkonfiguration Schwachstellen einzuführen. Kyverno, eine native Kubernetes-Richtlinien-Engine, ist ideal für diese Aufgabe und wird häufig verwendet, um die oben genannten Probleme zu lösen. Als Nächstes werde ich darüber sprechen, wie Sie mit Kyverno auf der OpenShift-Containerplattform beginnen können.

RedHat OpenShift

Die Red Hat® OpenShift Container Platform ist die branchenführende Hybrid-Cloud-Plattform auf Basis von Containern und Kubernetes. Die Verwendung der OpenShift-Containerplattform vereinfacht und beschleunigt die Entwicklung, Bereitstellung und Lebenszyklusverwaltung eines hybriden Satzes von Anwendungen, die sich überall befinden können: On-Premise, Public Clouds und Edge. Die OpenShift-Containerplattform wurde entwickelt, um kontinuierliche Innovation und Geschwindigkeit in großem Umfang zu liefern und Unternehmen dabei zu unterstützen, für heute bereit zu sein und für morgen zu planen.

Kyverno

Kyverno ist die ideale Lösung zum Automatisieren, Verwalten und Sichern jeder Kubernetes-basierten Plattform, einschließlich der OpenShift-Containerplattform. Kyverno arbeitet als dynamischer Zugangscontroller in einem Cluster. Es empfängt HTTP-Webhook-Rückrufe mit Überprüfung und Änderung von Berechtigungen von kube-apiserver und wendet die entsprechenden Richtlinien an, um Ergebnisse zu erzeugen, die die Berechtigungsrichtlinien erzwingen oder Anforderungen ablehnen. Kyverno-Richtlinien sind in Kubernetes nativem YAML geschrieben, wodurch die Lernkurve, die zum Schreiben Ihrer eigenen Richtlinien erforderlich ist, erheblich verkürzt wird. Kyverno-Richtlinien können Ressourcen mithilfe von Ressourcentyp-, Namens- und Bezeichnungsselektoren abgleichen, um Aktionen wie Image-Validierung, -Änderung, -Generierung und -Verifizierung für die Containersignierung und Softwarekettenzertifizierung auszulösen.

Vor Arbeitsbeginn

Um zu beginnen, benötigen Sie Folgendes:

Nachdem Sie alle erforderlichen Komponenten vorbereitet haben, fahren Sie mit den folgenden Schritten fort:

Installieren Sie Kyverno

Sie benötigen Cluster-Administratorrechte, um Kyverno zu installieren. Die neuesten Kyverno-Installationsanweisungen finden Sie hier

hier

.

Fügen Sie zuerst das Kyverno-Helm-Repository hinzu und aktualisieren Sie es:

helm repo kyverno helm repo update hinzufügen

Installieren Sie dann Kyverno auf Ihrem OpenShift-Cluster. Beachten Sie, dass der Namespace

Kyverno

wird automatisch erstellt:

helm install kyverno kyverno/kyverno –namespace kyverno –create-namespace

Überprüfen Sie nach der Installation der Helm-Karte, ob die

unter

Kyverno.

kubectl get pods -n kyverno
Bitte beachten Sie, dass es je nach Größe Ihres OpenShift-Clusters, also der Anzahl der Ressourcen im Cluster, notwendig sein kann, die Speicher- und CPU-Limits für das bereitgestellte Kyverno zu erhöhen. Sie sollten auch die Anzahl der Replikate auf 2 erhöhen, damit Kyverno im Hochverfügbarkeitsmodus bereitgestellt wird.

Wenn Sie auf OpenShift-Clustern das Scannen und Überprüfen von Ressourcen in System-Namespaces (die mit OpenShift beginnen) verhindern möchten, können Sie die Kyverno-Konfigurationszuordnung so aktualisieren, dass sie den folgenden Eintrag enthält:

Webhooks: ‘[{“namespaceSelector”:{“matchExpressions”:[{“key”:”openshift.io/run-level”,”operator”:”NotIn”,
“values”: [“0″,”1”]}]}}]’

Sobald der Kyverno-Pod gestartet ist, erstellt er automatisch die erforderlichen Berechtigungs-Webhooks. Sie können auch überprüfen

CRD

die mit diesem Befehl für Kyverno installiert werden:

kubectl crds abrufen |grep kyverno

Installieren von Kyverno-Richtlinien

Nachdem Kyverno installiert ist, können Sie mit dem Einrichten von Richtlinien beginnen. Bei der Erstinstallation wird empfohlen, sie so einzustellen, dass sie im „Audit“-Modus arbeiten, damit keine der Verbindungsanfragen zum OpenShift-Cluster blockiert werden. Sie können herausfinden, ob eine Richtlinie auf „Audit“ eingestellt ist, indem Sie einfach die Eigenschaft „validationFailureAction“ im Richtlinienmanifest überprüfen.

Verwenden Sie den folgenden Befehl, um typische Richtlinien zu installieren:

helm install kyverno-policies kyverno/kyverno-policies –namespace kyverno

Als Nächstes können Sie mit dem folgenden Befehl überprüfen, ob die Richtlinien installiert wurden:

kubectl erhält Clusterrichtlinien

Die Ausgabe des Befehls sollte wie folgt aussehen:

NAME HINTERGRUNDAKTION BEREIT Privilegienausweitung verweigern true audit true disallow-add-capabilities true audit true disallow-host-namespaces true audit true disallow-host-path true audit true disallow-host-ports true audit true disallow-privileged-containers true audit true disallow-selinux true audit true require-default-proc-mount true audit true require-non-root-groups true audit true require-run-as-non-root true audit true constraint-apparmor-profiles true audit true seccomp wahr Audit wahr Restrikt-sysctls wahr Audit wahr Restriktionsvolumentypen wahr Audit wahr

Beachten Sie, dass der Status BEREIT der Richtlinie bedeutet, dass sie bereit ist, alle eingehenden Anforderungen zu verarbeiten oder Hintergrundaufgaben auszuführen.

Anzeigen eines Richtlinienverstoßberichts

Sobald die Richtlinien installiert und bereit sind, sollten sie mit dem Generieren von Richtlinienverletzungsfehlern beginnen. Richtlinienverstöße können durch Abrufen von Richtlinienberichten angezeigt werden. Verwenden Sie den folgenden Befehl, um Richtlinienberichte für alle Namespaces abzurufen:

kubectl get policyreports -A

Führen Sie den folgenden Befehl aus, um Informationen zu clusterweiten Richtlinienverstößen abzurufen:

kubectl erhält Clusterrichtlinienberichte

Sie können auch detaillierte Richtlinienanalyseergebnisse mit dem folgenden Befehl anzeigen:

kubectl beschreiben

.

Fehlerbehebung bei Problemen und Problemen

Unter Kyverno stürzt und stürzt ständig ab

Überprüfen Sie, ob der Absturz dadurch verursacht wird, dass der Pod nicht genügend Speicher erhält. Erhöhen Sie das Speicherlimit.

Richtlinien nicht angewendet

Überprüfen Sie, ob validierende und mutierende Webhooks korrekt erstellt werden:

kubectl erhält validierende Webhook-Konfigurationen, mutierende Webhook-Konfigurationen

Sie sollten Folgendes sehen:

NAME WEBHOOKS ALTER validatingwebhookconfiguration.admissionregistration.k8s.io/kyverno-policy-validating-webhook-cfg 1 46m validatingwebhookconfiguration.admissionregistration.k8s.io/kyverno-resource-validating-webhook-cfg 1 46m validatingwebhookconfiguration.admissionregistration.k8s.io/autoscaling .openshift.io 2 17d validatingwebhookconfiguration.admissionregistration.k8s.io/multus.openshift.io 1 17d NAME WEBHOOKS ALTER mutatingwebhookconfiguration.admissionregistration.k8s.io/kyverno-policy-mutating-webhook-cfg 1 46m mutatingwebhookconfiguration.admissionregistration.k8s.io /kyverno-resource-mutating-webhook-cfg 1 46m

Überprüfen Sie auch, ob der Kyverno-Dienst richtig konfiguriert ist:

kubectl get services -n kyverno

Sie sollten Folgendes sehen:

NAME TYP CLUSTER-IP EXTERNE IP PORT(S) ALTER kyverno-svc ClusterIP 172.30.97.254 443/TCP 13d

Weitere Informationen zur Fehlerbehebung finden Sie unter

Kyverno-Dokumentation

.

Zusammenfassen

Wie Sie sehen können, ist es sehr einfach, Kyverno auf einem OpenShift-Cluster zu verwenden. Nachdem Sie Kyverno installiert und Richtlinien angewendet haben, können Sie sofort mit dem Schreiben beginnen.

eigene Politik

für Ihr Projekt. Die OpenShift-Installation enthält mehrere benutzerdefinierte Ressourcendefinitionen. Falls Sie also benutzerdefinierte Ressourcen validieren müssen, können Sie einfach die entsprechende Kyverno-Richtlinie schreiben. Vielleicht finden Sie auch mehrere

Richtlinien, die von der Community erstellt werden

Kyverno und wenden Sie sie auf Ihre Cluster an.

Ein UFO ist eingeflogen und hat hier einen Aktionscode für unsere Blog-Leser hinterlassen:

15 % für alle VDS-Tarife (außer Heiztarif) – HABRFIRSTVDS.

Similar Posts

Leave a Reply

Your email address will not be published.