chapter eleven

11 The core of the control plane

 

This chapter covers

  • Investigating core components of the control plane
  • Reviewing API Server details
  • Exploring scheduler inferfaces and inner workings
  • Utilizing Controller Manager and Cloud Manager

Previously, we provided a high-level overview of Pods, provided a web application outlining why we need the Pod, and how Kubernetes was built with Pods.

After covering all of our requirements for the use case, let’s dive into the details of the control plane. All of the control plane components are installed into the kube-system namespace, a namespace where you, as an operator, should install very few components into.

You should just not use kube-system, and one of the main reasons is those non-controller applications running inside of the kube-system increase the security blast radius. If you are on a hosted system like GKE or EKS, you cannot see all of the control plane components.

11.1 Investigating the control plane

One of the easiest ways to start and poke at the control plane is the use kind. kind is Kubernetes in a container, see the following link for install instructions: kubernetes.io/docs/setup/learning-environment/kind/.

Using kind you can view the control plane easily. Just run the following commands.

11.2 API Server Details

11.2.1 API Objects and Custom Resource Definitions (custom API objects)

11.2.2 Custom Resource Definitions

11.2.3 Scheduler details

11.2.4 Recap of Scheduling

11.3 Kubernetes Controller Manager

11.3.1 Storage

11.3.2 Node Controller

11.3.3 Replication Controller

11.3.4 Endpoint Controller

11.3.5 Service accounts and tokens

11.4 Kubernetes Cloud Controller Managers

11.4.1 Node Controller

11.4.2 Route Controller

11.4.3 Service Controller

11.4.4 Etcd

11.5 Summary

11.6 Further Reading