Explore Courses Blog Tutorials Interview Questions
+10 votes
in DevOps and Agile by (1.4k points)
Can you please tell me the difference between kubectl apply and kubectl create. Why there are 3 different commands (apply, replace and create) doing the same thing?

2 Answers

+13 votes
by (10.5k points)

S. No.

Kubectl apply

Kubectl create


It directly updates in the current live source, only the attributes which are given in the file.

It first deletes the resources and then creates it from the file provided.


The file used in apply can be an incomplete spec

The file used in create should be complete


Apply works only on some properties of the resources

Create works on every property of the resources


You can apply a file that changes only an annotation, without specifying any other properties of the resource.

If you will use the same file with a replace command, the command would fail, due to the missing information.

To learn more about the Kubectl Command list, you can pay a visit to Kubernetes Cheat Sheet.

+1 vote
by (106k points)

Both are very different approaches. The kubectl create uses imperative Management. In Kubectl create you specify what you want to create, delete or replace.

While the kubectl apply uses Declarative approach. Where we tell the api how our cluster should look like. So your changes will be maintained even if you've applied changes to a live object.

Browse Categories