kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.

Mahak jain
4 min readDec 30, 2020

It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at google , combined with best-of-breed ideas and practices from the community.

Why Kubernetes?

The Docker adoption is still growing exponentially as more and more companies have started using it in production. It is important to use an orchestration platform to scale and 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 die? This is where Kubernetes comes in.

Case Study of Pokemon Go -

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, they were not ready for it, and even the servers couldn’t handle this much traffic.

Google Cloud got the ultimate test in July when its new customer Niantic released Pokémon GO, and the game shattered all prior estimates of player traffic. Engineers at Google and Niantic prepared for worst-case-scenario traffic at five times beyond expectations. Instead, they dealt with traffic 50 times beyond expectations.

Pokémon GO uses over a dozen services across Google Cloud. And it is the largest Kubernetes deployment ever on Google Container Engine.

Advantages of kubernetes:

Kubernetes Architecture

Is Kubernetes the best way to run containers in production today?

This can be a controversial one. Kubernetes is certainly the most feature-complete container orchestration tool with a vibrant community and buzzing ecosystem. Is it the best way to run containers in production today? That depends on your use-case. Perhaps in some cases, you can get by using a PaaS solution like Heroku. Alternatively, you may be able to leverage new-age serverless container services like Google Cloud Run or AWS Fargate. In other cases where you want complete control and flexibility over your workloads, Kubernetes may be the front runner among container orchestration tools.

Conclusion

Docker is a progressive containerization platform enjoyed by developers and used for delivering software, particularly applications of the microservice-based architecture. Using Docker as a standalone application is convenient for software development and testing. Installation, configuration and usage of Docker is quite easy. If you need to deploy an application in the production environment, it is better to use a cluster for running containers.

There are two the most popular orchestration solutions for running containers in clusters — Docker Swarm and Kubernetes, the former of which being a native Docker solution that primarily uses Docker API and CLI. Kubernetes, in contrast, is Google’s project which is used for deploying a cluster on which containers are running. Both Docker Swarm and Kubernetes provide high availability, load balancing, overlay networking, and scalability features. Docker Swarm is the easier of the two for deployment, as most of its features configuration is automated, and it consumes few hardware resources. Functionality is limited by Docker API, however, and native monitoring tools are missing. Kubernetes, meanwhile, is a modular solution with a high level of flexibility which has been supported by the majority of large corporate entities for a number of years. Built-in tools for monitoring services and the entire cluster are available for Kubernetes, though deployment and configuration is more difficult, making this resource a more demanding solution. Kubernetes is not compatible with Docker CLI and Docker Compose. Using Kubernetes is preferred in large environments where highly loaded multi-container applications are running

THANK YOU !!

MAHAK JAIN

--

--