Search Tutorials


What is Kubernetes? Need for it? | JavaInUse



What is Kubernetes? Need for it?

Kubernetes also called as K8s is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications.
In todays world Docker containers have become very popular. Containers are extremely lightweight, modular virtual machines. We get flexibility with those containers. We can create, deploy, copy, and move them from environment to environment.
In previous tutorial series we have already covered docker in depth. Consider a scenario where we have multiple docker containers interacting with each other.
Microserservices Orchestration using Kubernetes
We have seen in previous examples how difficult it is to manage these containers i.e to bring them up(unless we used docker swarm). What if a container crashes. Admin will need to move immediately and restore the container to previous state.
If there are less number of containers this approach is fine. But if we have hundred of thousands of containers running, then monitoring them manually is not feasible.
From Gmail to YouTube to Search, everything at Google runs in containers. Containerization allows their development teams to move fast, deploy software efficiently, and operate at an unprecedented scale. Each week, they start over two billion containers. They achieve this using Kubernetes. Previously Kubernetes was an internal Google project. Now kubernetes is maintained by the Cloud Native Computing Foundation and is open source
Kubernetes help manage orchestration of the containers. Kubernetes are self healing i.e it supports auto-scaling, auto-replicaion, auto-restart, auto-placement. If any container crashes due to some reason, they are restored to a known state and taken care of. Also Kubernetes are environment agnostic i.e they can be deployed to any environment using the same methodology. So using kubernetes we can deploy containers to Azure or AWS with similar kubernetes configuration.
Docker already has its own orchestration manager named Docker Swarm. Docker Swarm is much easier to use and does not require to learn any new tool or technology since its part of Docker. Kubernetes helps manage more complex container deployments while Docker Swarm offers a simple approach to get started with. Kubernetes helps support higher demands production environments and is used by many large organizations. Kubernetes is now the industry standard for container orchestration.