Since the rise of micro-services, there has been an increased usage of container technologies. This paved the way for orchestration tools to emerge, so that the containers are handled much more effectively in an automated way.
Kubernetes is one of the major container orchestration tools. It is developed by google and being an open source, it has a large community support. Kubernetes handles containers and it is not specific to docker containers.
Kubernetes is also called k8s with '8' being the number of letters in between 'k' and 's'. Kubernetes can be used with many cloud providers and also locally.
Terms in Kubernetes
The smallest deployable unit of Kubernetes is a pod, a pod is an abstraction of one or more containers. This means, a pod can have single or more containers in them. All the containers in a pod share the resources of the pod.
There are two different nodes in Kubernetes.
- Master node and
- Worker node.
A master node is a node which controls and manages the worker nodes.
A worker node is a physical or virtual machine, which has one or many pods running on it.
A cluster is group of nodes combines together. A cluster has a master node and some worker nodes. A cluster is created when a Kubernetes is deployed.
A master node is the control plane of the Kubernetes cluster. A master node has the following ,
An API server is responsible for the external and internal communication of the Kubernetes. It is the interface for creating, deleting and configuring a cluster. It is the entry point to a Kubernetes cluster.
A scheduler is a process which assigns pods in nodes.
It is a daemon(a program that runs in the background) that has the control loop, which watches the state of the cluster whether the desired state and current state are same. If they are not same, then this controller manager takes steps to achieve the desired state. For example: If the desired state is 2 and the current state is 1, the controller manager tries making changes so that the current state becomes 2.
etcd is a key value storage used by Kubernetes, which can be used for storing different information about the clusters including the state of the cluster.
Cloud controller manager
This is a cloud specific control of the Kubernetes component. This helps in linking the cloud provider and the cluster.
This is the node where actual work takes place. All the files and processes related to the application will be happening only in the worker nodes.
The above mentioned terms are explained in a short way, in the next blog let's try to have an understanding of how all these things are working together.