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 · 06.07.2025 · ⏳ 2 Minuten

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods

Kubernetes ist der De-facto-Standard für die Container-Orchestrierung, aber wenn es um den Umgang mit spezialisierter Hardware wie GPUs und anderen Beschleunigern geht, wird es kompliziert. In diesem …

Lesen →

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods
Katrin Peter · 03.07.2025 · ⏳ 2 Minuten

Produkt-Update bei Loopback:

Lesen →

Produkt-Update bei Loopback:
Katrin Peter · 03.07.2025 · ⏳ 3 Minuten

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland

Lesen →

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland
ayedo Redaktion · 28.06.2025 · ⏳ 3 Minuten

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen

In Branchen, in denen Systeme äußerst zuverlässig laufen müssen und strenge Leistungsanforderungen bestehen, wie beispielsweise in der Telekommunikation, Hochleistungs- oder KI-Computing, benötigen …

Lesen →

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen
Katrin Peter · 17.06.2025 · ⏳ 3 Minuten

Kubernetes kann Freiheit - wenn man es richtig macht.

Lesen →

Kubernetes kann Freiheit - wenn man es richtig macht.

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.