Kubernetes 1.26: Revolutionäre Validierungsrichtlinien für Admissions

Entdecken Sie die neuen Validating Admission Policies in Kubernetes 1.26 und vereinfachen Sie Ihre Entwicklungsprozesse.

Meta: ayedo Redaktion · 23.12.2022 · ⏳ 2 Minuten · Alle Blogs →

In Kubernetes 1.26 steht die erste Alpha-Version der Validating Admission Policies zur Verfügung! Diese neuen Richtlinien nutzen die Common Expression Language (CEL) und bieten eine deklarative, in-process Alternative zu den bestehenden validating admission webhooks.

CEL wurde ursprünglich für Validierungsregeln für CustomResourceDefinitions in Kubernetes eingeführt. Diese Erweiterung weitet die Nutzung von CEL erheblich aus und unterstützt eine viel breitere Palette von Anwendungsfällen für Admission.

Was ändert sich konkret für Entwickler/DevOps-Teams?

Admission Webhooks können für Entwickler und DevOps-Teams eine große Herausforderung darstellen. Sie müssen nicht nur einen Webhook-Binary implementieren und warten, sondern auch sicherstellen, dass dieser immer verfügbar ist. Wenn ein Webhook zeitlich ausfällt oder nicht erreichbar ist, kann dies zu einem Ausfall des Kubernetes-Controlplanes führen. Mit den neuen Validating Admission Policies wird dieser komplexe Prozess erheblich vereinfacht, indem CEL-Ausdrücke direkt in Kubernetes-Ressourcen eingebettet werden.

Praktische Beispiele oder Anwendungsfälle

Ein einfaches Beispiel zur Einschränkung der Anzahl von Replikaten in einem Deployment könnte so aussehen:

apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: "demo-policy.example.com"
spec:
  matchConstraints:
    resourceRules:
    - apiGroups:   ["apps"]
      apiVersions: ["v1"]
      operations:  ["CREATE", "UPDATE"]
      resources:   ["deployments"]
  validations:
    - expression: "object.spec.replicas <= 5"

Hier definiert das Feld expression die CEL-Ausdruck, der zur Validierung von Admission-Anfragen verwendet wird. matchConstraints legt fest, welche Arten von Anfragen diese ValidatingAdmissionPolicy validieren kann.

Um die Policy an die entsprechenden Ressourcen zu binden, verwenden wir:

apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicyBinding
metadata:
  name: "demo-binding-test.example.com"
spec:
  policyName: "demo-policy.example.com"
  matchResources:
    namespaceSelector:
      matchExpressions:
      - key: environment
        operator: In
        values:
        - test

Diese ValidatingAdmissionPolicyBinding-Ressource bindet die oben genannte Policy nur an Namespaces, in denen das Label environment auf test gesetzt ist. Sobald diese Bindung erstellt ist, beginnt der kube-apiserver, diese Admission Policy durchzusetzen.

Ein weiterer Vorteil dieser neuen Richtlinien ist die hohe Konfigurierbarkeit. Die Autoren der Richtlinien können Parameter definieren und den Geltungsbereich der Richtlinien nach Bedarf anpassen. Zum Beispiel kann die oben genannte Admission Policy so modifiziert werden:

apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: "demo-policy.example.com"
spec:
  paramKind:
    apiVersion: rules.example.com/v1 # Sie benötigen auch eine CustomResourceDefinition für diese API
    kind: ReplicaLimit
  matchConstraints:
    resourceRules:
    - apiGroups:   ["apps"]
      apiVersions: ["v1"]
      operations:  ["CREATE", "UPDATE"]
      resources:   ["deployments"]
  validations:
    - expression: "object.spec.replicas <= params.maxReplicas"

Hier definiert paramKind die Ressourcen, die zur Konfiguration der Policy verwendet werden, und der expression-Feld verwendet die params-Variable, um auf die Parameterressource zuzugreifen.

Mit dieser neuen Funktionalität wird das Management von Admission Policies in Kubernetes nicht nur einfacher, sondern auch flexibler, was besonders für Cluster-Administratoren von Vorteil ist. ayedo ist stolz darauf, Kubernetes-Partner zu sein und Ihnen zu helfen, diese neuen Funktionen optimal zu nutzen.


Quelle: Kubernetes Blog

ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps bei ayedo

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



ayedo Redaktion · 08.06.2025 · ⏳ 3 Minuten

Neue Wege im KI-Management: Die Gateway API Inference Extension

Moderne generative KI- und große Sprachmodelle (LLMs) stellen Kubernetes vor einzigartige Herausforderungen im Datenverkehrsmanagement. Im Gegensatz zu typischen kurzlebigen, zustandslosen Webanfragen …

Lesen →

Neue Wege im KI-Management: Die Gateway API Inference Extension
ayedo Redaktion · 06.06.2025 · ⏳ 2 Minuten

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet

Einführung in die Verwaltung von Sidecar-Containern in Kubernetes In der Welt von Kubernetes sind Sidecar-Container nützliche Helfer, die Funktionen erweitern oder zusätzliche Aufgaben für die …

Lesen →

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet
ayedo Redaktion · 05.06.2025 · ⏳ 2 Minuten

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!

Wir freuen uns, die allgemeine Verfügbarkeit der Gateway API v1.3.0 bekanntzugeben! Diese Version wurde am 24. April 2025 veröffentlicht und bringt spannende neue Funktionen mit sich. Was ändert sich …

Lesen →

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Wer Anwendungen produktiv betreibt, braucht keine schönen Dashboards, sondern harte Daten. Performance-Probleme entstehen nie dann, wenn Zeit für Debugging ist. Sie kommen genau dann, wenn Systeme …

Lesen →

Application Performance sollte messbar sein — jederzeit, in Echtzeit
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Warum betreibt ihr eure App eigentlich noch selbst?

Die Frage stellt sich immer wieder. Entwicklerteams liefern Features, optimieren Releases, bauen saubere Architekturen — und dann hängen sie trotzdem noch in der Infrastruktur. Kubernetes-Cluster …

Lesen →

Warum betreibt ihr eure App eigentlich noch selbst?

Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →


Noch Fragen? Melden Sie sich!

Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.