KUBERNETES AND ITS USE CASES

Shubh Kohli
4 min readDec 26, 2020

--

WHAT IS KUBERNETES?

Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.

How big companies are using Kubernetes?

The Docker adoption is still growing exponentially, more and more companies have started using it in Production. It is important to use an orchestration platform to scale & manage your containers.

Imagine a situation where you have been using Docker for a little while, and have deployed on a few different servers. Your application starts getting massive traffic, and you need to scale up fast, how will you go from 3 servers to 40 servers that you may require? And how will you decide which container should go where? How would you monitor all these containers and make sure they are restarted if they exit?

This is where Kubernetes comes in.

Pokemon Go’s Kubernetes story

How did ‘Pokemon Go’ able to scale so efficiently? The answer is Kubernetes. Yes:)

500+** million downloads and 20+ million daily active users. That’s HUGE.**

Pokemon Go engineers never thought their user base would increase exponentially surpassing the expectations within a short time. Even the servers couldn’t handle this much traffic.

The Challenge The horizontal scaling on one side but Pokemon Go also faced a severe challenge when it came to vertical scaling because of the real-time activity by millions of users worldwide. Niantic was not prepared for this.

The Solution The magic of containers. The application logic for the game ran on Google Container Engine (GKE) powered by the open-source Kubernetes project.

Niantic chose GKE for its ability to orchestrate their container cluster at planetary-scale, freeing its team to focus on deploying live changes for their players. In this way, Niantic used Google Cloud to turn Pokémon GO into a service for millions of players, continuously adapting and improving. This got them more time to concentrate on building the game’s application logic and new features rather than worrying about the scaling part.

“Going Viral” is not always easy to predict but you can always have Kubernetes in your tech stack.

Airbnb’s Kubernetes story

Airbnb adopted to support over 1000 engineers concurrently configuring and deploying over 250 critical services to Kubernetes (at a frequency of about 500 deploys per day on average).

kube-gen is the internal tool at Airbnb that can take a service’s parameters (defined in a single YAML file) and generate the full Kubernetes service configuration by adding all the necessary boilerplate configuration. The other major goal for kube-gen was to abstract away Kubernetes configuration and tooling complexities in order to allow engineering teams to retain ownership of their services deployment, with the necessary levels of isolation but without a long learning curve. Although kube-gen is not available publicly as it addresses Airbnb specific context, Cebula pointed out some open source alternatives: helm (package management), kustomize (configuration via file inheritance), and kapitan (configuration via templating).

k is another internal tool at Airbnb. k is mostly an opinionated wrapper for kubectl which also filters out some kubectl’s verbose output. k supports some extra functionalities as well, like wrapping the previously mentioned kube-gen tool, and building/pushing Docker images. The goal for this tool was to automate common workflows, therefore simplifying and standardizing engineering work by abstracting some of Kubernetes tooling complexity. But it also got developers and infrastructure engineers to talk a common language and use the same tools, which has strengthen collaboration, according to Cebula.

Conclusion

Around the world, many CIO’s and technologists have chosen to use Kubernetes, and it is expected to evolve much more in the years to come.

Containers are becoming more and more popular in the software world and Kubernetes has become the industry standard for deploying containers in production. We will expect a high growth rate of Kubernetes this year too.

--

--

Shubh Kohli
Shubh Kohli

No responses yet