In the previous chapter, we provided a high-level overview of Kubernetes and an introduction to its features, core components, and architecture. We also showcased a couple of business use cases and outlined some container definitions. The Kubernetes Pod abstraction for running thousands of containers in a flexible manner has been a fundamental part of the transition to containers in enterprises. In this chapter, we will cover the Pod and how Kubernetes was built to support it as a basic application building block.
As briefly mentioned in chapter 1, a Pod is an object that is defined within the Kubernetes API, as are the majority of things in Kubernetes. The Pod is the smallest atomic unit that can be deployed to a Kubernetes cluster, and Kubernetes is built around the Pod definition. The Pod (figure 2.1) allows us to define an object that can include multiple containers, which allows Kubernetes to create one or more containers hosted on a node.