Smallest deployable unit that can be created and managed in Kubernetes. It is a group of one or more containers with shared storage and network resources. Pods are scheduled on nodes by the Scheduler and enforced by the Kubelet on the assigned node. In case a pod becomes unhealthy, Kubernetes will look to schedule another instance onto a node and destroy the unhealthy pod rather than try and repair it.
Provide the ability to create consistent networking constructs to expose one or more pods as a service. These services can be accessed externally if that is the desired behavior of the operator.
Deployments provide a mechanism for operators to describe a desired state for Pods and ReplicaSets. These deployments can consist of entire application definitions that are then enforced and maintained by the Kubernetes Cluster.
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/