The more observant of you might have noticed the following output after you ran kubectl
:
deployment.apps "elasticsearch" created
When we run kubectl run
, Kubernetes does not create a Pod directly; instead, Kubernetes automatically creates a Deployment Object that will manage the Pod for us. Therefore, the following two commands are functionally equivalent:
$ kubectl run <name> --image=<image> $ kubectl create deployment <name> --image=<image>
To demonstrate this, you can see a list of active Deployments using kubectl get deployments
:
$ kubectl get deployments NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE elasticsearch 1 1 1 1 2s
The benefit of using a Deployment object is that it will manage the Pods under its control. This means that if the Pod fails, the Deployment will automatically restart the Pod for us.
Generally, we should not imperatively instruct Kubernetes to create...