Courseiva
Application Deployment →easyMultiple Choice

CKAD Application Deployment Practice Question

What is the difference between 'kubectl apply' and 'kubectl create'?

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

'kubectl apply' can be used to create and update resources; 'kubectl create' only creates new resources

'kubectl apply' is declarative: it creates or updates a resource to match the provided configuration. 'kubectl create' is imperative: it creates a new resource and will fail if the resource already exists.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    'kubectl apply' only works with Deployments, while 'kubectl create' works with all resources

    Why it's wrong here

    Both kubectl apply and kubectl create operate on any Kubernetes resource type—Deployments, Services, Pods, ConfigMaps, and more—so the limitation described here does not exist. The real difference lies in command semantics: 'apply' sends an HTTP PATCH with a three-way merge, while 'create' sends an HTTP POST. This option incorrectly attributes the distinction to resource kinds rather than to declarative versus imperative management.

  • ✗

    'kubectl apply' is for creating resources, 'kubectl create' is for updating

    Why it's wrong here

    This reverses the actual behavior of each command. 'kubectl apply' is a declarative command that both creates and updates resources by comparing the desired state in a manifest against the live object and any stored last-applied configuration, issuing a PATCH if needed. 'kubectl create', in contrast, is imperative and attempts to create a brand-new resource; if the object already exists, it returns an error rather than updating it.

  • ✗

    There is no difference

    Why it's wrong here

    The two commands differ substantially in how they manage object state. 'kubectl apply' is declarative and tracks the most recent configuration via an annotation, enabling it to intelligently merge changes from the manifest into the live object. 'kubectl create' is an imperative action that simply POSTs a new resource and refuses to continue if the resource already exists. Also, 'apply' can adopt existing resources, whereas 'create' cannot.

  • ✓

    'kubectl apply' can be used to create and update resources; 'kubectl create' only creates new resources

    Why this is correct

    This is correct: 'kubectl apply' provides declarative management—it creates a resource if absent and updates it if present by calculating a PATCH based on the object's live state and its stored last-applied configuration. 'kubectl create' is imperative and only performs an initial POST, failing with an error if the resource already exists. Because 'apply' knows the last-applied state, it supports partial updates, while 'create' does not.

About these practice questions

This CKAD question is part of Courseiva's 826-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This CKAD practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKAD exam.