Why so Kubernetes?
By: Poojan Mehta
Tags: Containers, Airbnb, Kubernetes, Docker, Cloud Native

If you’ve been anywhere near the IT industry, you’ve very likely heard the term containers🚢. The adoption of containers is growing exponentially as they are lightweight, portable, and revolutionary fast. Nowadays, deployments over containers are holding an upper hand over VMs for larger environments.

→ Containers provide isolated runtime environments and allocated resources are exclusively presented to the container, and any alteration won’t affect other running containers.

→ Such environments provide greater efficiency with running, managing, and in resource consumption.

→With great power, comes great responsibilities✌️. Imagine a situation where you have been using containers in production and your application starts getting massive traffic. All you need to do is scaling the application. How will you perform this? How will you decide inter-connection of containers within no time? How will you monitor all these containers and manage health-checks😥? We need an orchestration platform to scale and manage our containers.

This is where tools like Kubernetes☸️ comes into play.

What exactly is Kubernetes?

→ Kubernetes(K8s) an open-source project by Google, hosted by Cloud Native Computing Foundation that has become one of the most popular container orchestration (simply container management) tools around; it allows you to deploy and manage fault-tolerant, resource optimal container applications at scale.

→In simple words, you can bundle together groups of containers, and Kubernetes helps you easily and effectively manage those containers. It can span across on-premises, public, private or hybrid clouds. For this reason, Kubernetes is now an undisputed platform to host cloud-native applications that require rapid scaling. While in best practices, K8s is more often used with Docker. It provides :

Service Topology : Routing the traffic based upon cluster topology.

: Routing the traffic based upon cluster topology. Service Discovery and Load Balancing : Service discovery is the process of figuring out how to connect to a service. Kubernetes has its own mechanism for that. It gives pods(basically one or more containers) unique IP addresses and a single IP to the collection of pods that enable load-balancing across the pods.

: Service discovery is the process of figuring out how to connect to a service. Kubernetes has its own mechanism for that. It gives pods(basically one or more containers) unique IP addresses and a single IP to the collection of pods that enable load-balancing across the pods. Storage Orchestration : This allows you to mount the storage system of your choice. Be it public, private cloud storage, NFS, and many more...

: This allows you to mount the storage system of your choice. Be it public, private cloud storage, NFS, and many more... Horizontal Scaling : Scale your application up or down with commands, UI, or via auto-scaling seamlessly!

: Scale your application up or down with commands, UI, or via auto-scaling seamlessly! Automated Rollouts and Rollbacks : Monitoring the health-checks of the application ensures almost no downtime and matches the desired state for deployment solution. Kubernetes will rollout and rollback for you.

: Monitoring the health-checks of the application ensures almost no downtime and matches the desired state for deployment solution. Kubernetes will rollout and rollback for you. Self Healing: Always takes care of the desired state and restart, replace and reschedule the containers and only ready-to-work containers are advertised to the clients.

For a successful open source project, the community is as important as having great code. K8s has a very thriving community across the world. It has more than 3000 active contributors(according to the August 2019 report).

How Kubernetes Works?

→A working Kubernetes deployment is called a cluster. A cluster mainly contains the master node and several workers nodes. The role of the master node is to maintain the desired state and the worker nodes actually run the application workloads.

→If a worker node goes down, Kubernetes starts new pods on a functioning worker node. This makes the process of managing containers easy and simple. Your work involves configuring Kubernetes and defining nodes, pods, and the containers within them. Kubernetes handles orchestrating the containers.