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 →



Fabian Peter · 17.08.2025 · ⏳ 4 Minuten

K3s on Flatcar via Ansible & vSphere: automatisiertes K8s für regulierte Umgebungen

Lesen →

K3s on Flatcar via Ansible & vSphere: automatisiertes K8s für regulierte Umgebungen
Fabian Peter · 17.08.2025 · ⏳ 9 Minuten

k3k: agent-less k3s in Kubernetes

Lesen →

k3k: agent-less k3s in Kubernetes
Fabian Peter · 17.08.2025 · ⏳ 18 Minuten

Developer Platforms von ayedo: Maßgeschneidert, flexibel und zukunftsgerichtet

Lesen →

Developer Platforms von ayedo: Maßgeschneidert, flexibel und zukunftsgerichtet
Fabian Peter · 17.08.2025 · ⏳ 13 Minuten

GPUs in Kubernetes: Praxisleitfaden für H100, MIG & Time‑Slicing

Lesen →

GPUs in Kubernetes: Praxisleitfaden für H100, MIG & Time‑Slicing
Fabian Peter · 06.08.2025 · ⏳ 3 Minuten

Warum Helm der Standard für Kubernetes Apps ist

Lesen →

Warum Helm der Standard für Kubernetes Apps ist

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.