What is Kubernetes?

What is Kubernetes, need of Kubernetes, Case-Study, Future of Kubernetes

Gauri Raskar
5 min readJan 8, 2021

What is Kubernetes😄

Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management.

Now a question must have popped up in your mind that what is orchestration…

Orchestration is the automated configuration, management, and coordination of computer systems, applications, and services. Orchestration helps IT to more easily manage complex tasks and workflows.

Some may get confused between orchestration and automation but automation refers to automating a single task. which is different from orchestration, Orchestration is most akin to managing a large-scale virtual environment or network.

Together, automation and orchestration can help reduce IT costs, ramp up productivity, and free up personnel focus for more strategic pursuits.

Kubernetes orchestration🤓

Kubernetes orchestration allows you to build application services that span multiple containers, schedule containers across a cluster, scale those containers, and manage their health over time. Kubernetes eliminates many of the manual processes involved in deploying and scaling containerized applications.

Now, what do you think a container is…

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

Features of Kubernetes😎

  • Automates various manual processes: for instance, Kubernetes will control for you which server will host the container, how it will be launched etc.
  • Interacts with several groups of containers: Kubernetes is able to manage more cluster at the same time
  • Provides additional services: as well as the management of containers, Kubernetes offers security, networking and storage services
  • Self-monitoring: Kubernetes checks constantly the health of nodes and containers
  • Horizontal scaling: Kubernetes allows you scaling resources not only vertically but also horizontally, easily and quickly
  • Storage orchestration: Kubernetes mounts and add storage system of your choice to run apps
  • Automates rollouts and rollbacks: if after a change to your application something goes wrong, Kubernetes will rollback for you
  • Container balancing: Kubernetes always knows where to place containers, by calculating the “best location” for them
  • Run everywhere: Kubernetes is an open source tool and gives you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you move workloads to anywhere you want

With Kubernetes you can:😲

  • Orchestrate containers across multiple hosts.
  • Make better use of hardware to maximize resources needed to run your enterprise apps.
  • Control and automate application deployments and updates.
  • Mount and add storage to run stateful apps.
  • Scale containerized applications and their resources on the fly.
  • Declaratively manage services, which guarantees the deployed applications are always running the way you intended them to run.
  • Health-check and self-heal your apps with autoplacement, autorestart, autoreplication, and autoscaling.

How Kubernetes benifits companies:🧐

  • Control and automate deployments and updates
  • Save money by optimizing infrastructural resources thanks to the more efficient use of hardware
  • Orchestrate containers on multiple hosts
  • Solve many common problems deriving by the proliferation of containers by organizing them in “pods” (see the last post!)
  • Scale resources and applications in real time
  • Test and autocorrection of applications

Need of Kubernetes🤔

First Let’s see how application deployment evolved…

Traditional Deployment : Early on, organizations ran applications on physical servers. There was no way to define resource boundaries for applications in a physical server, and this caused resource allocation issues.

Automated Deployment : As a solution, virtualization was introduced. It allows you to run multiple Virtual Machines (VMs) on a single physical server’s CPU. Virtualization allows applications to be isolated between VMs and provides a level of security as the information of one application cannot be freely accessed by another application.

Container Deployment : Containers are similar to VMs, but they have relaxed isolation properties to share the Operating System (OS) among the applications. Therefore, containers are considered lightweight. Similar to a VM, a container has its own filesystem, share of CPU, memory, process space, and more. As they are decoupled from the underlying infrastructure, they are portable across clouds and OS distributions.

As we can see, Containers are a good way to bundle and run your applications.

That’s how Kubernetes comes to the rescue! Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more. Kubernetes provides the building blocks for building developer platforms, but preserves user choice and flexibility where it is important.

Let’s try to understand Kubernetes with real-life case-study🤩

Pinterest’s Kubernetes Case Study

Challenges : After eight years in existence, Pinterest had grown into 1,000 microservices and multiple layers of infrastructure and diverse set-up tools and platforms. In 2016 the company launched a roadmap towards a new compute platform, led by the vision of creating the fastest path from an idea to production, without making engineers worry about the underlying infrastructure.

Solution : The first phase involved moving services to Docker containers. Once these services went into production in early 2017, the team began looking at orchestration to help create efficiencies and manage them in a decentralized way. After an evaluation of various solutions, Pinterest went with Kubernetes.

Impact : “By moving to Kubernetes the team was able to build on-demand scaling and new failover policies, in addition to simplifying the overall deployment and management of a complicated piece of infrastructure such as Jenkins,” says Micheal Benedict, Product Manager for the Cloud and the Data Infrastructure Group at Pinterest. “We not only saw reduced build times but also huge efficiency wins. For instance, the team reclaimed over 80 percent of capacity during non-peak hours. As a result, the Jenkins Kubernetes cluster now uses 30 percent less instance-hours per-day when compared to the previous static cluster.”

What future with Kubernetes looks like?🤩

Any app, anywhere on any infrastructure from the edge and bare metal to multiple clouds in a common, consistent manner: that’s the future Kubernetes can provide

As per the recently published keynote by Googler and KubeCon co-chair Janet Kuo said, “Kubernetes is going to become boring, and that’s a good thing, at least for the majority of people who don’t have to care about container management.” He further added that “At Google Cloud, we’re still excited about the project, and we go to work on it every day. Yet it’s all of the solutions and extensions that expand from Kubernetes that will dramatically change the world as we know it.”

This just a drop in the ocean, there is a lot to know about Kubernetes let’s keep learning and exploring…

I hope you found this blog helpful, your feedback is valuable and will help me improve.. clap and comment your thoughts below.

--

--