Kubernetes for Beginners
Kubernetes or K8’s as they are also known as is one of the leading open-source Container Management Technology(or Container Orchestration Technology) out there. Once set up, it can easily scale up or scale down your containers and manage load balancing.
We all know that containerization can package applications that are fast, lightweight, deployment-ready, and be easily updated. But the problem is that they have to be managed externally for things like scheduling(when to start and stop containers), distribution, load balancing, and also if a container fails, it has to be copied and re-started again. Also, data availability and networking among the containers pose a considerable challenge in the scalability of the application.
This is where Kubernetes comes into play. Applications are expected to be available 24/7 and also the frequency of updates has increased. Kubernetes ensures that these containerized apps are available wherever you want and provide them with the required tools and infrastructure.
The basic object of K8’s is called a pod.A pod is a collection of one or more containers combined to form a single logical unit of K8’s environment.
It follows the Master/Slave model where Master controls the working of all the slave nodes, they are also known as worker nodes. This entire structure constitutes a ‘Kubernetes Cluster’.
Kubernetes Master is responsible for managing the entire cluster, coordinates all activities inside the cluster, and communicates with the worker nodes to keep the Kubernetes and your application running.
It is a single designated master node in the cluster which is a collection of three processes. They are Kube-API server, Kube-controller-manager, and Kube-Scheduler.
This is responsible for assigning the pods to different nodes. It’s a workload-specific function that impacts how availability, performance, and capacity of your cluster.
The API Server services REST operations and provide the frontend to the cluster’s shared state through which all other components interact.
A controller is a control loop that watches the shared state of the cluster through the API server and makes changes attempting to move the current state towards the desired state
Kubernetes Worker node contains all the necessary services to manage the networking between the containers, communicate with the master node, and assign resources to the containers scheduled.
There can be many worker nodes in a cluster but has only one Master node.
Each of these runs two processes. Kubelet & Kube-proxy.