In Kubernetes, a Deployment provides declarative updates for Pods and ReplicaSets. This means that a Deployment specifies the desired state of Pods and ReplicaSets, using Kubernetes objects, and describes all the details regarding the containers that should run on the Pods. To achieve this, Deployments have various options, such as monitoring the health status of your pod and restarting the pod's container if necessary.
Two relatively simple examples of the role of Deployments are creating an Apache Deployment with a number of Pods or updating the container image version used within a previously created Deployment. The Deployment Controller ensures that the desired state is achieved, meaning that in the latter example, the newer container image version is used.
Creating a Deployment in Kubernetes is the recommended way to create and manage Pods. A practical example of creating a Deployment can be found in our 'Hello node' tutorial, Kubernetes Deployments via YAML Objects, or take a look at our 'Using Helm Charts' tutorial.