Summary
In this chapter, we learned that the atomic unit of deployment in the Kubernetes world is the Pod. Each Pod consists of one or more containers and gets deployed to a single node in the cluster. The deployment operation is an all-or-nothing atomic transaction.
Pods are deployed declaratively using a YAML manifest file, and it's normal to deploy them via higher-level controllers such as Deployments. We use the kubectl
command to POST
the manifest to the API server. It gets stored in the cluster store and converted into a PodSpec that gets scheduled to a healthy cluster node with enough available resources.
The process on the worker node that accepts the PodSpec is the kubelet
. This is the main Kubernetes agent running on every node in the cluster. It takes the PodSpec and is responsible for pulling all images and starting all containers in the Pod.
If a singleton Pod fails, it is not automatically rescheduled. Because of this, we usually deploy Pods via higher-level...