Kubernetes introduction

Kubernetes introduction

Monolithic Applications

A monolithic application is built as a single unit. They're typically complex applications that encompass several tightly coupled functions. If an application needs to scale just one component, all of the components must be scaled because they are tightly packed and impossible to separate.

Microservices

Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. Microservices are distributed and loosely coupled.

image.png

The transformation from a monolithic to a microservices

It's not that microservices are from the start of the tech era. Companies that find uses for microservices want to make the transition from monolithic to microservices. The enterprise faces a refactoring approach dilemma: a "big bang" approach or an incremental refactoring. Even after refactoring, there are several other challenges to face, like finding suitable tools to keep the project alive, choosing a runtime etc.

  • AppDirect

  • box

  • Pinterest etc.

are the companies that can succeed in the transformation.

Container Orchestrator

Orchestration is often associated with orchestration platforms that allow you to create a scripted interaction among services to automate workflows. Since microservices are autonomous in nature, it will be challenging for them to communicate with one another in an application. Here, the orchestrator aids in establishing microservices' inter-microservice communication.

  1. Fault-tolerance

  2. On-demand scalability

  3. Optimal resource usage

  4. Auto-discovery to automatically discover and communicate with each other

  5. Accessibility from the outside world

  6. Seamless updates/rollbacks without any downtime.

are the some sepcific requirements that meet by applications and services using container Orchestrators

image.png

K8S

"Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications".

Kubernetes acts as an orchestrator. But K8S is much more than a container orchestrator

  • With Kubernetes you don't need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives Pods their IP addresses and a single DNS name for a set of Pods and can load-balance across them.

  • Kubernetes clusters allow containers to run across multiple machines and environments: virtual, physical, cloud-based, and on-premises

  • Kubernetes store secrets

  • A Kubernetes volume is a directory that contains data accessible to containers in a given Pod in the orchestration and scheduling platform

Kubernetes Architecture

image.png

A Kubernetes cluster is a collection of control plane nodes and worker nodes.

Control plane node

Control plane agents are in charge of managing the Kubernetes cluster. It is the brain of the cluster. At any cost, it is important to keep the control plane running. The loss of the control plane leads to downtime of the application and a huge loss in business. To ensure the control plane's fault tolerance, control plane node replicas can be added to the cluster, configured in High-Availability (HA) mode. The following are control plane components:

  • API server

  • control manager

  • Scheduler

  • etcd

    image.png

Worker nodes

A worker node provides a running environment for client applications. The containerized microservices are encapsulated in pods and controlled by the control plane agents. Pods are scheduled on worker nodes, where they find the computing, memory, and storage resources they need to run, as well as networking to communicate with one another and the outside world. Pods are the smallest scheduling units. The following are Worker node components:

  • Container Runtime

  • Kubelet

  • Kube-Proxy

  • User interfaces

Kubernetes Installation

Did you find this article valuable?

Support Supraja Manda by becoming a sponsor. Any amount is appreciated!