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.
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.
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
- Aangepaste resourcedefinities (CRD's)
- Het Operator-patroon in Kubernetes
- Serverless met Kubernetes (Knative)
- De API-server uitbreiden met admission-webhooks