Hands-on Lab·Kubernetes and Cloud Native Security Associate
Admission Control and ValidatingAdmissionPolicy
Admission control is where a cluster stops being a set of defaults and starts being your policy. This guide reads the plugins that are already on, then writes a rule in CEL that the apiserver enforces itself - no webhook, no Service, no certificate - and shows exactly where the binding scopes it.
Platform Security Guide 32 of 42 Intermediate
- Kubernetesapiserver v1.36.4, kubelet v1.36.3
- Runtimecontainerd 2.2.6
- CNICilium 1.18.1 - tunnel/VXLAN, with Hubble relay and UI
- Host OSUbuntu 26.04 LTS, kernel 7.0.0-29
- Built withkubeadm v1.36.3 - podSubnet 10.244.0.0/16, serviceSubnet 10.96.0.0/12
- TimeAbout 18 min
- Reviewed25 August 2026
Written against the versions above. ValidatingAdmissionPolicy is `admissionregistration.k8s.io/v1` on this cluster and enabled by default. MutatingAdmissionPolicy is v1 here too. Neither needs anything installed.
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA5001 | 192.168.0.41 | Ubuntu 26.04 LTS | Control Plane Node (tainted NoSchedule) | 2 Core | 4 GB | 50 GB |
| CKA5001-NODE01 | 192.168.0.42 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA5001-NODE02 | 192.168.0.43 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA5001-NODE03 | 192.168.0.44 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
Before you start
-
What is enforcing admission right now
-
The plugins that are on without anyone asking
-
The two phases, in the apiserver's own words
-
A rule of your own, with nothing behind it
-
The refusal, the acceptance, and the scope
-
What the webhook route would have cost