DEV Community

Cover image for Here's why you should use Kubernetes!
Prashant Ghildiyal
Prashant Ghildiyal

Posted on • Originally published at

Here's why you should use Kubernetes!

Kubernetes is a portable, extensible, open-source platform for managing containerized applications and services that facilitates both declarative configuration and automation. Kubernetes provides a platform to configure, automate, and manage:

  • Intelligent and balanced scheduling of containers
  • Creation, deletion, and movement of containers
  • Easy scaling of containers
  • Monitoring and self-healing abilities

Challenges with Previous Technologies

Before Kubernetes there were containers, which became popular because they simplified going from application development to deployment without having to worry about portability or reproducibility. Developers can package an application and all its dependencies, libraries, and configuration files needed to execute the application into a container image. A container is a runnable instance of an image. Container images can be pulled from a registry and deployed anywhere the container runtime is installed: on your laptop, servers on-premises, or in the cloud.

Docker Functionalities managing Containers

Compared to virtual machines, containers have similar resources and isolation benefits, but are lighter in weight because they virtualize the operating system instead of the hardware. Containers are more portable and efficient, take up less space, use far fewer system resources, and can be spun up in seconds.

Virtual Machines Vs Containers

Managing containers for production is challenging. As the container market continued to grow and many workloads transitioned to fully production-grade containers, it was clear cluster admins needed something beyond a container engine. Key capabilities were missing, such as:

  • Using multiple containers with shared resources
  • Monitoring running containers
  • Handling dead containers
  • Moving containers so utilization improves
  • Autoscaling container instances to handle load
  • Making the container services easily accessible
  • Connecting containers to a variety of external data sources

Advantages of Kubernetes

Containers paved the way to build cloud native systems, in which services are implemented using small clouds of containers. This created an enormous opportunity to add and adopt new services to make the use of containers easier, faster, and far more productive. Since it was open-sourced by Google in 2014, Kubernetes has become the de-facto standard for container orchestration. Kubernetes leverages the power of containers while simplifying the management of services and machines in a cluster.

A Pod is a logical grouping of one or more containers, which are scheduled together and share resources. Pods enable multiple containers to run on a host machine and share resources such as storage, networking, and container runtime information.

Kubernetes Clusters abstract their underlying computing resources, allowing users to deploy workloads to the entire cluster as opposed to a particular server. A Kubernetes cluster consists of at least one master node that manages the cluster and multiple worker nodes, where containerized applications run using Pods.

Containers in Pods, Kubernetes Advantage

Kubernetes architecture enables:

  • A single administrator to manage thousands of containers running simultaneously
  • Workload portability and orchestration of containers across on-site deployments to public or private clouds and to hybrid deployments in between

About Me:

Hi Everyone, I am Prashant, and I have been a DevOps Engineer for more than 15 years now. I've been working on Exciting technologies like Kubernetes, Orchestration, Containerization, among others. With Experience, I understood that there is a lack of consolidated delivery workflow for Kubernetes. So, With some of my friends, I have Co-founded Devtron, an Open Source solution, to solve this issue. It would mean a lot if you can check out our Repo:

GitHub logo devtron-labs / devtron

Software Delivery Workflow For Kubernetes

Devtron is an open source software delivery workflow for kubernetes written in go
Explore documentation »

Website · Blog · Join Discord · Twitter

Join Discord Go Report Card License CII Best Practices made-with-Go Website

📖 Menu

💡 Why Devtron?

It is designed as a self-serve platform for operationalizing and maintaining applications (AppOps) on kubernetes in a developer friendly way

🎉 Features

Zero code software delivery workflow
  • Workflow which understands the domain of kubernetes, testing, CD, SecOps so that you dont have to write scripts
  • Reusable and composable components so that workflows are easy to contruct and reason through
Multi cloud deployment
  • Deploy to multiple kubernetes cluster
Easy dev-sec-ops integration
  • Multi level security policy at global, cluster, environment and application for efficient hierarchical policy management
  • Behavior driven security policy
  • Define policies and exception for kubernetes resources
  • Define policies for events for faster resolution

Application debugging dashboard

  • One place…

This post is originally published on the Devtron website by one of our beloved devs, Prakarsh.

Top comments (0)