Docker en Kubernetes voor ontwikkelaars · Les

De API-server uitbreiden met admission-webhooks

Onderschep Kubernetes-API-verzoeken tijdens de verwerking en valideer of wijzig ze met validating en mutating admission-webhooks om clusterbeleid af te dwingen.

Les 4 van 413 stappen

De API-server uitbreiden met admission-webhooks is een gratis Docker en Kubernetes voor ontwikkelaars-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Docker en Kubernetes voor ontwikkelaars. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Docker en Kubernetes voor ontwikkelaars bevat in totaal 4 lessen.

Wat is toegangscontrole

Na authenticatie en autorisatie gaan verzoeken door admission-controllers, die objecten kunnen valideren of aanpassen voordat ze worden opgeslagen.

Twee soorten webhooks

Dynamische admission gebruikt webhooks: mutating-webhooks wijzigen objecten en validating-webhooks accepteren of weigeren ze.

Waar ze in de pijplijn staan

De API-server voert eerst mutating-webhooks uit en daarna validating-webhooks. Zo kan een wijziging standaardwaarden toevoegen voordat de validatie het uiteindelijke object controleert.

Een gebruiksscenario

Voorbeelden zijn het invoegen van een sidecar (mutating), afdwingen dat elke Pod resourcelimieten instelt (validating) of afbeeldingen uit niet-vertrouwde registers blokkeren.

De MutatingWebhookConfiguration

Deze resource registreert je webhook-eindpunt bij de API-server.

apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  name: add-defaults
webhooks:
  - name: defaults.example.com
    clientConfig:
      service:
        name: webhook-svc
        namespace: default
        path: /mutate
      caBundle: <base64-ca>
    rules:
      - operations: ["CREATE"]
        apiGroups: [""]
        apiVersions: ["v1"]
        resources: ["pods"]

De AdmissionReview-payload

De API-server stuurt een AdmissionReview in JSON-indeling naar je webhook en verwacht een AdmissionReview-antwoord met allowed true/false en, voor mutaties, een JSONPatch.

Een JSON Patch retourneren

Een mutating-webhook retourneert een met base64 gecodeerde JSONPatch die de toe te passen wijzigingen beschrijft.

{"response":{"allowed":true,"patchType":"JSONPatch","patch":"<base64-patch>"}}

failurePolicy is belangrijk

failurePolicy: Fail blokkeert verzoeken als de webhook niet beschikbaar is. Dat is veilig, maar kan het cluster vergrendelen; Ignore laat verzoeken door, wat riskant is voor beveiligingsbeleid.

Scope instellen met selectors

Gebruik namespaceSelector en objectSelector om te beperken welke verzoeken je webhook bereiken, zodat je extra belasting en een onbedoeld steeds groter bereik voorkomt.

Beleidsengines als alternatief

In plaats van webhookservers te schrijven, bieden hulpmiddelen zoals OPA Gatekeeper en Kyverno declaratieve beleidsregels boven op hetzelfde toelatingsmechanisme.

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-limits
spec:
  validationFailureAction: Enforce
  rules:
    - name: check-limits
      match:
        any:
          - resources:
              kinds: [Pod]
      validate:
        message: "CPU and memory limits are required"
        pattern:
          spec:
            containers:
              - resources:
                  limits:
                    memory: "?*"

TLS is vereist

Webhook-eindpunten moeten HTTPS aanbieden met een certificaat dat via caBundle wordt vertrouwd, omdat de API-server webhooks alleen via TLS aanroept.

Korte controle

Test wat je hebt geleerd.

Samenvatting

Je hebt geleerd hoe toelatingswebhooks de API-server uitbreiden: muterende webhooks wijzigen objecten en validerende webhooks dwingen beleid af, evenals het verloop van AdmissionReview, failurePolicy en selectors, TLS-vereisten en beleidsengines zoals Kyverno en Gatekeeper.

Gratis beginnen

Leer Docker en Kubernetes voor ontwikkelaars met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “De API-server uitbreiden met admission-webhooks” gratis?

Ja — de volledige tekst van “De API-server uitbreiden met admission-webhooks” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Docker en Kubernetes voor ontwikkelaars wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Docker en Kubernetes voor ontwikkelaars bevat in totaal 4 lessen.

Wat leer ik in “De API-server uitbreiden met admission-webhooks”?

Onderschep Kubernetes-API-verzoeken tijdens de verwerking en valideer of wijzig ze met validating en mutating admission-webhooks om clusterbeleid af te dwingen. Je oefent met Docker en Kubernetes voor ontwikkelaars door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Docker en Kubernetes voor ontwikkelaars te beginnen?

Ervaring vooraf is niet nodig. Docker en Kubernetes voor ontwikkelaars op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “De API-server uitbreiden met admission-webhooks”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Docker en Kubernetes voor ontwikkelaars?

Ja. Elke les over Docker en Kubernetes voor ontwikkelaars bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Aangepaste resourcedefinities (CRD's)
  2. Het Operator-patroon in Kubernetes
  3. Serverless met Kubernetes (Knative)
  4. De API-server uitbreiden met admission-webhooks
← Terug naar Docker en Kubernetes voor ontwikkelaars