Getting Started with Kubernetes: Your Step-by-Step Introduction
This blog focuses on introducing Kubernetes. If you’re reading this blog it means you are likely familiar, with the growing technology called “Kubernetes.” The main objective of this blog is to provide an understanding of the concepts, behind Kubernetes.
What is kubernetes ?
As everyone say’s kubernetes is a container orchestration platform, ie., which can automatically scale, deploy, and manage the lifecycle of containerized application , without affecting the underlying Infra.
The “Cluster” acts as the platform that houses all your applications.
Inside the cluster you have “Nodes” which’re the computing resources where your applications run.
Each “Node” has the ability to accommodate Pods.” A “Pod” groups together one or more “Containers,” bringing them together within a shared network and storage environment.
This hierarchy offers advantages, such, as use of resources, easier scalability and management and improved isolation between different parts of applications. By comprehending the relationship, between clusters, nodes, pods and containers you can effectively design, deploy and oversee your applications in a Kubernetes setting.
Why we need Kubernetes ?
The increasing popularity of Kubernetes (K8s) can be attributed to the rise, in the use of microservices of monolithic applications. This shift has led to the adoption of containers as an environment for hosting microservices. Containers are excellent at managing dependencies providing autonomy, compatibility with operating systems and offering functionality among other benefits.
Many complex applications often consist of microservices ranging from ten to thousands. Scaling and ensuring the availability of these microservices can be challenging if we rely on coded programs or scripts to manage these elements. As a result there is a demand, for a solution to handle these components efficiently.
K8 Architecture and its component's:
Kubernetes features a modular and scalable architecture made up of several key components that work together to enable container orchestration, management, and scaling .
Control plane components:
The control plane manages and controls the entire Kubernetes cluster. It consists of several components.
API Server: Acts as the entry point for all requests to your Kubernetes cluster. Validate and process API requests and communicate with other components.
Etcd: A distributed key/value store that stores all configuration data and cluster state. Used as a backend for all Kubernetes objects.
Controller Manager: Monitors and automatically adjusts various resources to ensure the desired state of the cluster matches the actual state.
Scheduler: Assigns pods to worker nodes based on resource requirements, constraints, and other policies. The goal is the balanced use of resources.
Node components:
A node is a working machine in a cluster that runs containers. Each node consists of the following components:
Kubelet: Make sure the containers in the pod are running and healthy. Communicate with the control plane and manage containers on the node.
Kube proxy: Maintains network rules that allow communication between pods and services. Manage network routing and load balancing for services.
Here are some well-known companies that have implemented Kubernetes in their infrastructure.