Deployment Theory
At a high level, we start with application code. That gets packaged as a container and wrapped in a Pod so it can run on Kubernetes. However, Pods don't self-heal, they don't scale, and they don't allow for easy updates or rollbacks. Deployments do all of these. As a result, we almost always run Pods via Deployments.
Figure 5.1 shows some Pods being managed by a Deployment.
Figure 5.1: Pods being managed by a deployment
It's important to know that a single Deployment can only manage a single type of Pod. For example, if you have an application with a Pod for the web frontend and another Pod for the catalog service, you'll need two Deployments. However, as we saw in Figure 5.1, a Deployment can manage multiple replicas of the same Pod. For example, Figure 5.1 could be a deployment that currently manages two replicated web server Pods.
The next thing to know is that Deployments are fully fledged objects in...