Member-only story
Kubernetes Deployments
Lets forget about pods, replicasets and other Kubernetes concepts for a minute. Lets talk about how you deploy your application in production environment.
Lets you have a web server that needs to be deployed in a production environment. You need many such instances of that web server running. Also when newer version of the application becomes available, you need to upgrade your instances seamlessly. When you upgrade, you do not need to upgrade all of them at once. This may impact users accessing the application and you might need to upgrade them one after the other. That kind of upgrade is knows as rolling update.
Assume one of the upgrade you performed resulted in an unexpected error and you now need to undo the upgrade. Also if you want to stop your environment and upgrade all instances at once and then start.
All above requirements can be achieved with the Kubernetes deployments.

In above case, each container is encapsulated in PODs. Multiple such PODs are deployed using replication controllers or replica sets. Then comes deployment which is a Kubernetes object that comes higher in the hierarchy.
The deployment provides us with the capability to upgrade the underlying instances seamlessly using rolling updates, undo changes and pause and resume changes as required.