kubectl create is imperative and creates a new object from a file or command input, but it will fail if that resource already exists. kubectl apply is declarative and reconciles the live object with the manifest, creating it if needed or updating it when the specification changes. Use apply when you want repeatable configuration management.
Why kubectl create and kubectl apply behave differently
NIST SP 800-190 Container Security is a useful reference point here because Kubernetes manifests sit inside a broader container and orchestration control plane. The practical difference is not just command syntax, it is the management model. create is a one-time object instantiation path, while apply is a reconciliation path that treats the manifest as the desired state and updates the live object accordingly.
That distinction matters because manifest management is usually about repeatability, drift control, and safe change handling rather than simply getting a resource into the cluster once. With create, the command succeeds only when the object does not already exist, so it is best suited to initial bootstrap or ad hoc creation. With apply, the command can be rerun as the manifest evolves, which makes it the better fit for ongoing configuration management and Git-driven delivery.
In practice, teams usually discover the difference when a deployment pipeline reruns a manifest and one command fails on an existing object while the other keeps the live configuration aligned with the file.
How kubectl apply supports repeatable manifest management
apply works by comparing the desired configuration in the manifest with the current state of the object and making the necessary changes to move the live resource toward that specification. That makes it more suitable for day-to-day operations where the same manifest may be reapplied many times across environments, promotions, or release cycles.
For practitioners, the value is in idempotent workflow behavior: if the resource already exists, apply updates it instead of forcing a failure. That reduces friction in CI/CD, improves consistency across environments, and makes reviewable manifest changes meaningful because the file becomes the source of truth. It also helps when multiple fields may evolve over time, as long as the applied manifest is the authoritative version of those fields.
Use
createwhen you need a new object and want the command to fail if it already exists.Use
applywhen the manifest should be reapplied safely to keep the live object aligned with desired state.Prefer
applyfor configuration tracked in version control, because it supports repeatable rollout behavior.Reserve
createfor bootstrap, prototypes, or one-off resource instantiation where reconciliation is not the goal.
This model breaks down when teams expect apply to manage every aspect of object lifecycle, because some field ownership and merge behaviors can become confusing in heavily shared or manually edited resources.
Common variations and edge cases
Tighter manifest control often increases operational discipline, but it also means teams need to be clear about which command owns object creation and which command owns ongoing updates. The main tradeoff is between simple one-time instantiation and long-term reconciliation of declared state.
A few practical edge cases matter. create is useful when you want an immediate failure for an already existing object, such as in scripts that should not overwrite or mutate anything. apply is usually the default for GitOps-style workflows, but it assumes the manifest is maintained carefully and that changes are intentional. When objects are edited manually after creation, repeated apply may surface drift, but it can also expose differences in ownership of fields that were never intended to be managed by the same process.
For multi-environment delivery, the safer pattern is to standardize on apply for declared configuration and keep create for genuine bootstrapping steps. That avoids surprises when the same manifest is reused across test, staging, and production. In clusters where many operators touch the same objects by hand, the clean distinction between creation and reconciliation tends to erode fastest.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
NIST CSF 2.0 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | GV — Govern | Manifest choice affects configuration governance and change control. |
| CM — Configuration Management | The question is fundamentally about managing declared configuration over time. | |
| Recommendation — Define who may create versus reconcile Kubernetes resources and enforce that policy consistently. Track manifest changes and apply them as controlled configuration updates rather than ad hoc edits. | ||
| CIS Controls v8 | 4 — Secure Configuration of Enterprise Assets and Software | kubectl apply supports controlled configuration baselines for manifests. |
| Recommendation — Standardise Kubernetes manifests and reapply them to keep configuration aligned with approved baselines. | ||
Practitioner Guidance
What to prioritise: Decide whether the manifest is meant to be a record of desired state or a one-time provisioning input. If the same YAML will be rerun, standardise on apply; if a pipeline should fail on duplicates, use create.
What to verify: Confirm who is allowed to create objects versus who is allowed to reconcile them, because the operational risk is different. The important check is whether reruns should update the live object or be treated as an error condition.
Common mistake: Treating create and apply as interchangeable leads to brittle automation. Teams often discover the difference only after a redeploy, when an object already exists and the chosen command no longer matches the workflow.
Practitioner takeaway: Use create for first-time object instantiation, use apply for repeatable state management, and let the workflow decide which failure mode is safer.
Related resources from NHI Mgmt Group
- What is the difference between a mirror control plane and managing gateway configuration directly in Kubernetes?
- What is the difference between managing human identities and non-human identities?
- What is the difference between managing human accounts and non-human identities?
- What is the difference between managing human access and managing agent access?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 16, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org