Udvidelse af API-serveren med admission-webhooks
Opfang og valider eller ændr Kubernetes API-anmodninger undervejs ved hjælp af validating og mutating admission-webhooks for at håndhæve klyngepolitikker.
Udvidelse af API-serveren med admission-webhooks er en gratis Docker og Kubernetes for udviklere-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Docker og Kubernetes for udviklere, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Docker og Kubernetes for udviklere-kurset indeholder 4 lektioner i alt.
Hvad er adgangskontrol
Efter godkendelse og autorisation passerer forespørgsler gennem admission-controllere, som kan validere eller ændre objekter, før de gemmes.
To typer webhooks
Dynamisk adgangskontrol bruger webhooks: mutating-webhooks ændrer objekter, mens validating-webhooks accepterer eller afviser dem.
Hvor de befinder sig i pipelinen
API-serveren kører mutating-webhooks først og derefter validating-webhooks, så en ændring kan tilføje standardværdier, før valideringen kontrollerer det endelige objekt.
Et anvendelseseksempel
Eksempler: indsæt en sidecar (mutating), håndhæv, at hver Pod angiver ressourcegrænser (validating), eller blokér images fra upålidelige registre.
MutatingWebhookConfiguration
Denne ressource registrerer dit webhook-endepunkt hos API-serveren.
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"]AdmissionReview-nyttedata
API-serveren sender en AdmissionReview-JSON til din webhook og forventer et AdmissionReview-svar med allowed true/false samt en JSONPatch ved ændringer.
Returnering af en JSON Patch
En mutating-webhook returnerer en base64-kodet JSONPatch, der beskriver de ændringer, som skal anvendes.
{"response":{"allowed":true,"patchType":"JSONPatch","patch":"<base64-patch>"}}failurePolicy er vigtig
failurePolicy: Fail blokerer forespørgsler, hvis webhooken er nede. Det er sikkert, men kan låse klyngen fast. Ignore lader forespørgsler passere, hvilket er risikabelt for sikkerhedspolitikker.
Begrænsning med selectors
Brug namespaceSelector og objectSelector til at begrænse, hvilke forespørgsler der rammer din webhook, så du undgår unødvendigt overhead og utilsigtet udvidelse af omfanget.
Policy-motorer som alternativ
I stedet for at skrive webhook-servere kan værktøjer som OPA Gatekeeper og Kyverno levere deklarative politikker oven på den samme mekanisme til godkendelse.
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 er påkrævet
Webhook-slutpunkter skal levere HTTPS med et certifikat, der er tillid til via caBundle, fordi API-serveren kun kalder webhooks over TLS.
Hurtigt tjek
Afprøv det, du har lært.
Opsamling
Du har lært, hvordan admission-webhooks udvider API-serveren: muterende webhooks ændrer objekter, og validerende webhooks håndhæver politikker, samt hvordan AdmissionReview-forløbet, failurePolicy og udvælgere, krav til TLS og policy-motorer som Kyverno og Gatekeeper fungerer.
Lær Docker og Kubernetes for udviklere med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Udvidelse af API-serveren med admission-webhooks” gratis?
Ja — hele teksten til “Udvidelse af API-serveren med admission-webhooks” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Docker og Kubernetes for udviklere-kurset, skal du opgradere til CoddyKit PRO. Docker og Kubernetes for udviklere-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Udvidelse af API-serveren med admission-webhooks”?
Opfang og valider eller ændr Kubernetes API-anmodninger undervejs ved hjælp af validating og mutating admission-webhooks for at håndhæve klyngepolitikker. Du øver dig i Docker og Kubernetes for udviklere med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Docker og Kubernetes for udviklere?
Der kræves ingen tidligere erfaring. Docker og Kubernetes for udviklere på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Udvidelse af API-serveren med admission-webhooks”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Docker og Kubernetes for udviklere-lektion?
Ja. Alle Docker og Kubernetes for udviklere-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Custom Resource Definitions (CRDs)
- Operator-mønsteret i Kubernetes
- Serverless med Kubernetes (Knative)
- Udvidelse af API-serveren med admission-webhooks