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...