Securing Kubernetes
As mentioned earlier in this chapter, Kubernetes is the most widely used container orchestrator. In this section, we will learn how to secure managed Kubernetes services.
Kubernetes terminology
Before we begin the conversation about Kubernetes, let us define the various components of Kubernetes.
For high availability, Kubernetes is deployed in a cluster mode (hence, Kubernetes cluster). At a high level, a Kubernetes cluster has the following components:
- Control plane components:
- Kubernetes API server: The main component of the Kubernetes cluster, used to expose Kubernetes APIs to incoming traffic for cluster maintenance, and for in-cluster traffic between the various cluster components.
- etcd: A key-value database for storing cluster configuration (such as the number of running worker nodes or deployed pods).
- kube-scheduler: A component responsible for assigning Pods to nodes based on different scheduling factors such as resource requirements, affinity...