Bird
Raised Fist0
Kubernetesdevops~20 mins

kubectl apply vs create in Kubernetes - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kubectl Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Difference in behavior between kubectl create and kubectl apply

What happens if you run kubectl create on a resource that already exists in the cluster?

AIt updates the existing resource with new changes.
BIt deletes the old resource and creates a new one.
CIt ignores the command and does nothing.
DIt throws an error saying the resource already exists.
Attempts:
2 left
💡 Hint

Think about whether kubectl create is designed to add new resources or modify existing ones.

🧠 Conceptual
intermediate
2:00remaining
Effect of kubectl apply on existing resources

What does kubectl apply do when the resource already exists in the cluster?

AIt deletes the existing resource and creates a new one.
BIt throws an error saying the resource already exists.
CIt updates the existing resource with the changes from the configuration file.
DIt ignores the changes and leaves the resource as is.
Attempts:
2 left
💡 Hint

Consider how kubectl apply helps keep resources in sync with configuration files.

💻 Command Output
advanced
2:00remaining
Output of kubectl create on existing resource

What is the output when you run kubectl create -f pod.yaml if the pod already exists?

Kubernetes
kubectl create -f pod.yaml
Aerror: pods "mypod" already exists
Bpod/mypod created
Cpod/mypod configured
DWarning: pod/mypod already exists, skipping creation
Attempts:
2 left
💡 Hint

Remember that kubectl create does not update existing resources.

💻 Command Output
advanced
2:00remaining
Output of kubectl apply on existing resource

What is the output when you run kubectl apply -f deployment.yaml if the deployment already exists and is updated?

Kubernetes
kubectl apply -f deployment.yaml
Adeployment.apps/mydeployment configured
Bdeployment.apps/mydeployment unchanged
Cerror: deployment.apps "mydeployment" already exists
Ddeployment.apps/mydeployment created
Attempts:
2 left
💡 Hint

Think about how kubectl apply reports changes.

✅ Best Practice
expert
3:00remaining
Choosing between kubectl create and apply in CI/CD pipelines

In a continuous deployment pipeline, which command is best to use to ensure the cluster matches the desired state defined in configuration files?

Akubectl get, to verify resources before deployment.
Bkubectl apply, because it can create or update resources to match the config files.
Ckubectl delete followed by kubectl create, to always start fresh.
Dkubectl create, because it ensures resources are only created once.
Attempts:
2 left
💡 Hint

Consider which command helps keep resources in sync with config files automatically.

Practice

(1/5)
1. What is the main difference between kubectl create and kubectl apply?
easy
A. kubectl create only creates new resources and fails if they exist; kubectl apply creates or updates resources.
B. kubectl create updates existing resources; kubectl apply deletes resources.
C. kubectl create deletes resources; kubectl apply only creates new resources.
D. kubectl create and kubectl apply do the same thing.

Solution

  1. Step 1: Understand kubectl create behavior

    kubectl create makes new resources but will fail if the resource already exists.
  2. Step 2: Understand kubectl apply behavior

    kubectl apply can create new resources or update existing ones safely without failing.
  3. Final Answer:

    kubectl create only creates new resources and fails if they exist; kubectl apply creates or updates resources. -> Option A
  4. Quick Check:

    create = new only, apply = create or update [OK]
Hint: Create fails if exists; apply updates or creates [OK]
Common Mistakes:
  • Thinking create updates existing resources
  • Believing apply deletes resources
  • Assuming both commands behave identically
2. Which of the following is the correct syntax to create a deployment using kubectl create?
easy
A. kubectl create deployment myapp --image=nginx
B. kubectl create pod myapp --image=nginx
C. kubectl apply deployment myapp --image=nginx
D. kubectl apply -f deployment.yaml

Solution

  1. Step 1: Identify kubectl create syntax for deployment

    The command kubectl create deployment myapp --image=nginx creates a deployment named myapp with the nginx image.
  2. Step 2: Differentiate from kubectl apply syntax

    kubectl apply uses the -f flag with a file, not direct deployment creation.
  3. Final Answer:

    kubectl create deployment myapp --image=nginx -> Option A
  4. Quick Check:

    create deployment uses direct command, apply uses files [OK]
Hint: Use 'create deployment' with image flag, apply uses files [OK]
Common Mistakes:
  • Using apply syntax with create command
  • Mixing file flag with create deployment
  • Confusing create and apply commands
3. Given the commands below, what will happen if the deployment myapp already exists?

kubectl create deployment myapp --image=nginx
kubectl apply -f deployment.yaml
medium
A. Both commands will fail because the deployment exists.
B. Both commands will update the deployment.
C. The create command will update; the apply command will fail.
D. The create command will fail; the apply command will update the deployment.

Solution

  1. Step 1: Behavior of kubectl create on existing resource

    kubectl create fails if the resource already exists, so the first command will fail.
  2. Step 2: Behavior of kubectl apply on existing resource

    kubectl apply updates the existing resource safely, so the second command updates the deployment.
  3. Final Answer:

    The create command will fail; the apply command will update the deployment. -> Option D
  4. Quick Check:

    create fails if exists; apply updates [OK]
Hint: Create fails if exists; apply updates existing resources [OK]
Common Mistakes:
  • Assuming create updates existing resources
  • Thinking apply fails if resource exists
  • Believing both commands behave the same
4. You ran kubectl create -f service.yaml but got an error saying the service already exists. What should you do to update the service instead?
medium
A. Use kubectl replace -f service.yaml to update the service.
B. Delete the service first, then run kubectl create -f service.yaml again.
C. Use kubectl apply -f service.yaml to update the existing service.
D. Run kubectl create -f service.yaml with a different name.

Solution

  1. Step 1: Understand the error cause

    kubectl create fails if the resource exists, so the error means the service is already present.
  2. Step 2: Choose the correct update method

    kubectl apply safely updates existing resources without deleting them, so use kubectl apply -f service.yaml.
  3. Final Answer:

    Use kubectl apply -f service.yaml to update the existing service. -> Option C
  4. Quick Check:

    apply updates existing resources safely [OK]
Hint: Use apply to update existing resources, not create [OK]
Common Mistakes:
  • Trying to create again without deleting
  • Deleting resources unnecessarily
  • Using replace without understanding its effect
5. You want to manage a deployment over time, updating its image and replicas safely without deleting it. Which command should you use and why?
hard
A. Use kubectl create deployment myapp --image=nginx repeatedly to update the deployment.
B. Use kubectl apply -f deployment.yaml because it creates or updates resources safely.
C. Use kubectl delete deployment myapp then kubectl create -f deployment.yaml to update.
D. Use kubectl replace -f deployment.yaml because it creates new resources.

Solution

  1. Step 1: Identify the need for safe updates over time

    Managing a deployment means updating it multiple times without deleting or failing.
  2. Step 2: Choose the command that supports create or update safely

    kubectl apply can create or update resources safely, preserving existing settings and avoiding errors.
  3. Step 3: Evaluate other options

    kubectl create fails if resource exists; deleting is disruptive; replace overwrites but is less safe than apply.
  4. Final Answer:

    Use kubectl apply -f deployment.yaml because it creates or updates resources safely. -> Option B
  5. Quick Check:

    Manage resources over time with apply [OK]
Hint: Apply manages updates safely; create is one-time only [OK]
Common Mistakes:
  • Using create repeatedly causing errors
  • Deleting resources unnecessarily
  • Confusing replace with apply
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard