Kubernetes admission control is the policy layer that evaluates API requests after authentication and authorization but before an accepted object is persisted. That position makes admission a powerful preventative boundary: the cluster can reject or mutate an unsafe workload definition before controllers schedule it.
The current KCNA exam tests Kubernetes security and administration at a foundational level. In Kubernetes operations, admission control connects API governance to concrete workload rules such as Pod security, required labels, allowed registries, resource requirements, or image provenance.
The key distinction is sequence. RBAC decides whether an identity may perform an operation; admission decides whether the requested object itself satisfies cluster policy.
Admission runs inside the API request path
An authenticated and authorized create or update request reaches admission before storage. Mutating admission can change an object, while validating admission can accept or reject it. Because the decision occurs before persistence, a rejected resource never becomes desired cluster state.
This makes admission suitable for preventative guardrails. Runtime monitoring can detect a bad configuration after it exists; admission can stop the object before a controller creates Pods or other dependent resources.
Mutating admission can change objects before validation, and multiple mutators may interact. Teams should understand ordering and reinvocation behavior for the mechanisms they use and avoid depending on fragile assumptions about which external webhook runs first. A mutation that adds a label, sidecar, or security field can affect later validation rules.
Mutation should be conservative. Automatically adding safe defaults can reduce repetitive configuration, but large invisible transformations make the submitted manifest differ substantially from the stored object. Engineers need to understand what the cluster changed and why, especially when debugging a workload that behaves differently from its source YAML.
Built-in controllers enforce core cluster behavior
Kubernetes enables a set of admission controllers by default, including controllers for namespaces, resource quotas, service accounts, Pod security, storage protection, and other platform behavior. Cluster operators should understand which defaults their distribution manages before changing API server admission settings.
Disabling a controller is not a harmless simplification. A built-in controller may be enforcing assumptions used by other parts of the cluster, so changes should be tested against platform support and upgrade behavior rather than copied from an old hardening recipe.
Cluster bootstrap and policy recovery deserve special consideration. Kubernetes 1.37 documents manifest-based admission control as a way to load selected policies or webhooks from disk at API server startup, which can protect admission configuration itself. That capability is powerful, but a bad static policy also requires host-level remediation, so it should be managed with the same rigor as other control-plane configuration.
ValidatingAdmissionPolicy provides declarative CEL validation
Kubernetes supports `ValidatingAdmissionPolicy` as an in-process, declarative validation mechanism using Common Expression Language. A policy defines validation logic, while bindings determine where and how the policy applies. Parameters can make the same policy reusable across different scopes.
Because the policy runs in-process, it avoids the network call required by a validating webhook. Teams still need to manage policy lifecycle, matching, failure behavior, and testing, but the operational dependency surface can be smaller for rules that CEL can express.
Policy scope should deliberately exclude objects that do not need evaluation. Matching every verb on every resource increases latency and the chance that a policy bug affects cluster administration. Narrow resource rules, namespace selectors, object selectors, and match conditions make enforcement easier to test and reason about.
Admission rules should be version-aware. APIs and fields evolve, so expressions that assume one schema version can fail or behave differently as workloads migrate to newer versions. Policy testing should include every API version still supported in the cluster and should retire rules tied to removed APIs during upgrade planning.
Webhooks remain useful for external or complex logic
Mutating and validating admission webhooks send admission reviews to external HTTPS services. They can implement logic that needs external systems or capabilities beyond native policy expressions, but they also add latency and availability dependencies to the API path.
Webhook design should minimize scope and timeout impact. A webhook that matches every object and depends on a fragile external service can turn a policy outage into a cluster-wide deployment outage. Match rules, namespace selectors, failure policy, and service reliability are therefore production design choices.
Webhook TLS is operational infrastructure. The API server must trust the webhook’s serving certificate and reach the service endpoint. Certificate rotation, service DNS, network policy, and webhook deployment availability therefore become part of API reliability. An expired certificate can block unrelated application changes if the webhook has broad matching rules and a fail-closed policy.
Admission latency belongs in SLO thinking. Each synchronous webhook adds work to the API path, and several slow webhooks can make ordinary deploys feel like control-plane instability. Teams should monitor webhook duration, timeout rates, and rejection reasons alongside application deployment metrics.
Failure policy decides whether uncertainty blocks change
Admission systems eventually fail: a webhook may be unreachable, a policy may be misconfigured, or a dependency may time out. A fail-closed choice protects enforcement but can stop deployments; a fail-open choice preserves change availability but creates a policy gap.
Teams should make that trade-off per control rather than globally. A non-critical metadata check may tolerate an availability-first behavior, while a control preventing privileged workloads may justify stronger enforcement and a tested break-glass process.
Break-glass procedures should not depend on the broken admission path. Teams need a documented method for recovering from a policy that rejects necessary remediation, and any bypass should generate evidence. The goal is not to make policy impossible to override; it is to make exceptional override harder, narrower, and more visible than ordinary deployment.
Admission and image signing form an artifact gate
Image signing becomes enforceable when admission evaluates the image reference and its trusted evidence before accepting the workload. The policy can require approved registries, immutable digests, trusted signer identities, or attestations produced by a release workflow.
The admission controller should verify the exact artifact identity the Pod will run. Policies based only on image-name strings or mutable tags can be bypassed by moving the tag to different content.
Policy changes require their own release discipline
An admission rule can affect every team in a cluster. A syntax-valid rule may still reject legitimate workloads, miss an edge case, or create unexpected mutation. Policy should therefore be tested against representative manifests before broad enforcement.
Policy changes should move through CI/CD pipelines with the same review and progressive rollout discipline as application code. Where supported, teams can begin in audit or warning mode, measure impact, fix existing workloads, and only then enforce the rule.
Admission policies should be evaluated against update and delete operations as well as create. A rule that is correct for a new resource may unexpectedly prevent an operator from removing or repairing an old resource if the match scope is too broad. Testing should include lifecycle transitions, not only initial deployment manifests.
Policy ownership should match the risk being controlled. Platform teams may own baseline Pod-security and resource policies, while security teams own artifact provenance and compliance rules. A clear owner is necessary for exceptions, incident response, and deprecation; otherwise denied deployments become tickets that bounce between teams.
Exceptions should be encoded as narrow policy conditions rather than broad namespace bypasses whenever possible. A temporary allowance for one controller, image, or workload class is easier to review than exempting an entire team namespace from all security checks.
Admission does not replace runtime controls
Once a workload has been admitted, its behavior can still become unsafe. An application may be compromised, credentials may be abused, or traffic may reach a destination the manifest did not reveal. Admission validates the declared object, not every future runtime action.
RBAC, NetworkPolicy, Linux isolation, secrets handling, and runtime detection therefore remain necessary. Admission is one boundary in a defense-in-depth model, not the universal security layer.
KCNA candidates should reason about control order
The most transferable admission concept is the request sequence: authenticate the caller, authorize the action, evaluate the object through admission, persist accepted state, and let controllers reconcile it. That model explains why different controls produce different failure messages and require different troubleshooting paths.
Operators who know the sequence can quickly distinguish an RBAC denial from an admission rejection and from a later scheduling or runtime failure. That is the practical value of admission knowledge beyond memorizing controller names.
Audit data completes the control. A rejected request should leave enough evidence to identify the requesting identity, resource, policy, and reason. That lets teams distinguish a malicious attempt from an obsolete deployment manifest and measure which policies create the most operational friction.
A good admission error message is part of platform usability. Rejections should tell developers which policy failed and what property must change without exposing sensitive implementation detail. Clear feedback reduces pressure for broad exceptions, helps developers recover quickly from rejected deployments, and preserves audit evidence of which policy ruled on the request and why.
The operating objective is predictable enforcement: developers know the rule, operators can diagnose failures, and security teams can prove how exceptions were handled.