Docker og Kubernetes for utviklere · leksjon

Utvidelse av API-serveren med Admission Webhooks

Fang opp og valider eller endre Kubernetes API-forespørsler underveis ved hjelp av validerende og endrende admission-webhooks for å håndheve klyngepolicyer.

Leksjon 4 av 413 trinn

Utvidelse av API-serveren med Admission Webhooks er en gratis leksjon i Docker og Kubernetes for utviklere på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Docker og Kubernetes for utviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.

Hva er admission control

Etter autentisering og autorisering går forespørsler gjennom admission controllers, som kan validere eller endre objekter før de lagres.

To typer webhooks

Dynamisk admission bruker webhooks: mutating-webhooks endrer objekter, mens validating-webhooks godtar eller avviser dem.

Hvor de befinner seg i pipelinen

API-serveren kjører mutating-webhooks først og deretter validating-webhooks, slik at en endring kan legge til standardverdier før valideringen kontrollerer det endelige objektet.

Et bruksområde

Eksempler er å sette inn en sidecar (mutating), håndheve at hver Pod angir ressursgrenser (validating) eller blokkere images fra uklarerte registre.

MutatingWebhookConfiguration

Denne ressursen registrerer webhook-endepunktet Deres 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-nyttelasten

API-serveren sender en AdmissionReview-JSON til webhooken Deres og forventer et AdmissionReview-svar med allowed true/false, samt en JSONPatch ved endringer.

Returnere en JSON Patch

En mutating-webhook returnerer en base64-kodet JSONPatch som beskriver endringene som skal brukes.

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

failurePolicy er viktig

failurePolicy: Fail blokkerer forespørsler hvis webhooken er nede. Det er sikkert, men kan låse klyngen. Ignore slipper forespørslene gjennom, noe som er risikabelt for sikkerhetspolicyer.

Avgrense med selektorer

Bruk namespaceSelector og objectSelector til å begrense hvilke forespørsler som treffer webhooken, slik at du unngår unødvendig belastning og utilsiktet utvidelse av virkeområdet.

Policy-motorer som alternativ

I stedet for å skrive webhook-servere tilbyr verktøy som OPA Gatekeeper og Kyverno deklarative policyer oppå den samme admission-mekanismen.

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åkrevd

Webhook-endepunkter må tilby HTTPS med et sertifikat som er klarert via caBundle, siden API-serveren bare kaller webhooker over TLS.

Hurtigsjekk

Test det du har lært.

Oppsummering

Du har lært hvordan admission-webhooker utvider API-serveren: muterende webhooker endrer objekter, og validerende webhooker håndhever policyer, samt om AdmissionReview-flyten, failurePolicy og selektorer, TLS-krav og policy-motorer som Kyverno og Gatekeeper.

Gratis å komme i gang

Lær deg Docker og Kubernetes for utviklere med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Utvidelse av API-serveren med Admission Webhooks» gratis?

Ja – hele teksten i «Utvidelse av API-serveren med Admission Webhooks» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Docker og Kubernetes for utviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.

Hva lærer jeg i «Utvidelse av API-serveren med Admission Webhooks»?

Fang opp og valider eller endre Kubernetes API-forespørsler underveis ved hjelp av validerende og endrende admission-webhooks for å håndheve klyngepolicyer. Du øver på Docker og Kubernetes for utviklere med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Docker og Kubernetes for utviklere?

Ingen tidligere erfaring er nødvendig. Docker og Kubernetes for utviklere på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Utvidelse av API-serveren med Admission Webhooks»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Docker og Kubernetes for utviklere-leksjonen?

Ja. Alle Docker og Kubernetes for utviklere-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Egendefinerte ressursdefinisjoner (CRD-er)
  2. Operator-mønsteret i Kubernetes
  3. Serverless med Kubernetes (Knative)
  4. Utvidelse av API-serveren med Admission Webhooks
← Tilbake til Docker og Kubernetes for utviklere