What is Deployment in Kubernetes? Deployment is a Kubernetes object It is a higher level object, above the replica set A Deployment provides declarative updates for Pods and ReplicaSets. You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments to create new ReplicaSets, or to remove existing Deployments and adopt all their resources with new Deployments. A deployment automatically creates the replica set Replica set created by deployment should not be managed manually Uses of Deployment Run multiple instances of applications Upgrade the docker instances seamlessly - Upgrade one after the other - Rolling updates! Rollback the recent changes Upgrade the webservers / Scaling the environment / Update the resources - All at a single time Pause and Resume the upgrades deployment-definition.yaml apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment