What is Kubernetes and Why do we need it? — For Beginners
A simple introduction to Kubernetes…
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
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.
Kube-API server
The API Server services REST operations and provide the frontend to the cluster’s shared state through which all other components interact.
Kube-controller-manager
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
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.
Kubernetes Worker
Kubernetes Worker node contains all the necessary services to manage the networking between the containers, communication 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.
Kubelet
This is the primary node agent that communicates with Kubernete's master.
Kube-proxy
This is responsible to maintain the networking structure on each node.
What are you waiting for?
We believe FIO Labs never fails to keep their promise when it comes to providing quality services. Our enterprise expertise and industry leadership mean you’re in safe hands.
If you are interested in learning more about what we do at FIO Labs or have some questions about this page, feel free to send us a message to contact@fiolabs.ai — we’d love to hear from you.
How to reach FIO Labs:
Leave a comment below | Book a FREE 30-min session for our on-going Pro Bono Services or Fill in our LinkedIn Form| Contact Us | About FIO Labs | Blog
References:
Production-Grade Container Orchestration. (n.d.). Retrieved April 22, 2020, from https://kubernetes.io/