Kubernetes Workload Resources
Workload resources exist to create and manage Pods, which should not usually be created directly. Various workload resources implement different operational patterns. The pod-managing resources described here are some times referred to as higher-level pod controllers or "templated controllers".
From the simplest to the most complex ones, the workload resources are Jobs, CronJobs, ReplicaSets, Deployments, DaemonSets and StatefulSets.
A ReplicaSet is a workload resource aimed at maintaining a stable set of replica Pods running at any given time, guaranteeing the availability of a specified number of identical Pods.
The Deployment is a resource that delegates to a ReplicaSet. The deployment enhances a ReplicaSet semantics with things like deployment strategy. An older, deprecated alternative to Deployments are ReplicationControllers.
Each of the workload resources specified above is backed by a controller and state reconciliation loop. The controller for the resource handles replication and rollout and automatic healing in case of Pod failure. For example, if a Node fails, the controller notices that Pods on that Node have stopped working and creates a replacement Pod. The scheduler places the replacement Pod onto a healthy Node. All these controllers are supervised by the controller manager.