2 Why the Pod?

 

This chapter covers

  • What is a Pod?
  • An example web app and why we need the Pod
  • How Kubernetes is built for Pods
  • The Kubernetes control plane

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.

Figure 2.1 A Pod

2.1 An example web application

2.1.1 Infrastructure for our web application

2.1.2 Operational requirements

2.2 What is a Pod?

2.2.1 A bunch of Linux namespaces

2.2.2 Kubernetes, infrastructure, and the Pod

2.2.3 The Node API object

2.2.4 Our web application and the control plane

2.3 Creating a web application with kubectl

2.3.1 The Kubernetes API server: kube-apiserver

2.3.2 The Kubernetes scheduler: kube-scheduler

2.3.3 Infrastructure controllers

2.4 Scaling, highly available applications, and the control plane

2.4.1 Autoscaling

sitemap