What is Kubernetes and why is it used?

Kubernetes is a word that you hear more and more these days as Containerization becomes more popular. This post aims to explain “What is Kubernetes” or at least give you some basic idea about it.

But, It works on my machine! 🤷 😥

You must have said or heard this phrase in your development lifecycle multiple times. This is a big problem because you can’t ship your machine to the customers, right?

To solve this problem Container technology are used. Most famous of them is Docker.

Leading companies rely on docker container platform to build, manage and secure all their applications from traditional applications to cutting-edge microservices — and deploy them anywhere.

Containers are much faster, lightweight and efficient than traditional virtualization because isolation is done on kernel level without the need of a guest operating system. Applications are encapsulated in a self-contained environment which means quicker deployments, scalability, and security.

Need for container orchestration

Container technologies like docker made software development efficient and deployment faster. But then arose a new problem. How would all these containers be coordinated, scheduled, communicate and scaled?

Soon solutions for container orchestration emerged. Kubernetes and docker swarm are the most popular one. They make a cluster of machines behave like one big machine.

What is Kubernetes?

Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers into logical units for easy management and discovery.

It was developed at Google which has been donated to the Cloud Native Computing Foundation(CNCF) and is now open source.

Understanding Pods

A Pod is the basic execution unit of a Kubernetes application–the smallest and simplest unit in the Kubernetes object model that you create or deploy. A Pod represents processes running on your Cluster.

A pod consists of one or more tightly coupled containers that constitute a deployable object. To make apps in your pods available to users, Kubernetes introduced an abstraction called service which defines a logical set of pods and has an external IP address. If your pods fail and restart, you don’t have to redeploy your app.

Advantages of using Kuberenetes

    Kubernetes allows horizontal autoscaling for your pods, so when at some point your app is accessed by a huge number of users, you can tell Kube to replicate your pods and balance the load across them to avoid downtime.

    Persistent volume — It supports a number of storage types (nfs, glusterfs, etc.) and cloud storage systems. A PV lifecycle doesn’t depend on any pod that uses the PV so you can keep the data as long as you need it.

    Rolling updates — Kubernetes allows updating your app in increments, so once a webhook pulls your code to your pods, Kube will scale your pods and update those that are not currently in use while exposing other pods to users.

    Kubernetes provides advanced scheduler to launch a container on cluster nodes.

    Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way. Kubernetes is an open-source platform and is production-ready. There is no harm in using it and support for Kubernetes is only going to grow.

How to install redis on Ubuntu 18.04

Redis delivers sub-millisecond response times enabling millions of requests per second for real-time applications in Gaming, Ad-Tech, Financial Services, Healthcare, and IoT....

Buffer overflow for kids

A buffer, in terms of a program in execution, can be thought of as a region of computer’s main memory that has certain boundaries in context...

Get in touch_

Or just write me a letter here_