- Published on
Kubernetes Overview
- Authors
- Name
- Rahul Padmaraju
- @lrahull
Kubernetes or k8s is an open-source container orchestration technology which was developed by Google. It is used by many enterprise applications for its flexibility, expandability, customisability and its ability to scale.
Kubernetes is made up of two main components: Control plane and Data plane
- The Control plane is a set of one or more nodes (Master nodes) which are used to manage the Kubernetes
- The Data plane is a swarm of nodes (Worker nodes) which are used to run the actual applications.
Control plane:
The control plane is made up of a few important components
- Kube api-server
- Kube controller-manager
- Kube scheduler
- Etcd database
The data plane is made up of these components:
- Nodes
- Kubelet
- Kube-proxy
Kube API server
The Kube API server is the central component of a Kubernetes cluster, it is used to interact with the Kubernetes cluster, all the components and users in a Kubernetes cluster interact with the entire cluster using the Kube API server as it exposes the Kubernetes API.
Kube Controller manager
Controller manager is a component that is used to manage controllers, Kubernetes has a set of predefined controllers, but custom controllers can also be developed if there is no prebuilt controller for your use case. SEE building custom operators and controllers.
A controller is program which ensures that the current state of a system matches the desired state of the system. If there is a deviation (delta) the controller will try to rectify it.
Few examples of controllers are:
- Deployment controller
- CronJob controller
- Job controller
Kube Scheduler
Scheduler is a component that is used to allocate (schedule) pods to nodes based on few variables such as available CPU, Memory, taints and tolerations, selectors and affinities.
Kubelet
The kubelet is the central part of every node in the data plane of Kubernetes cluster. It receives the pod configs from the Kube api-server and then passes the configuration to the container run time and deploys the required containers and network configs locally to that node.
Kube Proxy
kube-proxy is a proxy that runs on every node of the Kubernetes cluster (even master nodes). It enables communication in-between nodes, it can also be configured to allow outside traffic into the Kubernetes cluster. Kube-proxy is the part that enables the Kubernetes Service concept.
Nodes
Nodes are physical or virtual Machines which are part of the Kubernetes cluster. Note: Master nodes can also be configured to be used as worker nodes, although it is not recommended.

