What Is Kubernetes? An Introduction To Container Orchestration Tool
What Is Kubernetes?
Kubernetes is an open-source container management
(orchestration) tool. It’s container management responsibilities include
container deployment, scaling & descaling of containers & container
load balancing.
Note: Kubernetes is not a containerization platform. It is a
multi-container management solution.
Going by the definition, you might feel Kubernetes is very
ordinary and unimportant. But trust me, this world needs Kubernetes for
managing containers, as much as it needs Docker for creating them. Let me tell
you why! If you would favor a video explanation on the same, then you can go
through the below video.
What Is Kubernetes | Kubernetes Introduction | Kubernetes
Tutorial For Beginners
Why Use Kubernetes?
Companies out there maybe using Docker or Rocket or maybe
simply Linux containers for containerizing their applications. But, whatever it
is, they use it on a massive scale. They don’t stop at using 1 or 2 containers
in Prod. But rather, 10’s or 100’s of containers for load balancing the traffic
and ensuring high availability.
Keep in mind that, as the traffic increases, they even have
to scale up the number of containers to service the ‘n’ no of requests that
come in every second. And, they have to also scale down the containers when the
demand is less. Can all this be done natively?
Well to be honest, i’m not sure it can be done. Even if it
can be done, it is only then its only after loads of manual effort for managing
those containers. So, the real question is, is it really worth it? Won’t
automated intervention make life easier? Absolutely it will!
That is why, the need for container management tools is
imminent. Both Docker Swarm and Kubernetes are popular tools for Container
management and orchestration. But, Kubernetes is the undisputed market leader.
Partly because it is Google’s brainchild and partly because of its better
functionality.
Logically speaking, Docker Swarm is a better option because
it runs right on top of Docker right? If I were you, I would have had the same
doubt and it would have been my #1 mystery to solve. So, if your thinking the
same, read this blog on the comparison between Kubernetes vs Docker Swarm here.
If I could choose my pick between the two, then it would
have to be Kubernetes. The reason simply being: Auto-scaling of containers
based on traffic needs. However, Docker Swarm is not intelligent enough to do
Auto-scaling. Be as it may, let’s move onto the next topic of this, what is
Kubernetes blog.
Features Of Kubernetes
This is the right time to talk about Kubernetes’ features
because, you already know what it does and how it compares against Docker
Swarm.
1. Automatic Binpacking
Kubernetes
automatically packages your application and schedules the containers based on
their requirements and available resources while not sacrificing availability.
To ensure complete utilization and save unused resources, Kubernetes balances
between critical and best-effort workloads.
2. Service Discovery & Load balancing
With Kubernetes, there is no need to worry about networking
and communication because Kubernetes will automatically assign IP addresses to
containers and a single DNS name for a set of containers, that can load-balance
traffic inside the cluster.
3. Storage Orchestration
With Kubernetes, you can mount the storage system of your
choice. You can either opt for local storage, or choose a public cloud provider
such as GCP or AWS, or perhaps use a shared network storage system such as NFS,
iSCSI, etc.
4. Self-Healing
Personally, this is my favorite feature. Kubernetes can
automatically restart containers that fail during execution and kills those
containers that don’t respond to user-defined health checks. But if nodes
itself die, then it replaces and reschedules those failed containers on other
available nodes.
5. Secret & Configuration Management
Kubernetes can help you deploy and update secrets and
application configuration without rebuilding your image and without exposing
secrets in your stack configuration.
6. Batch Execution
In addition to managing services, Kubernetes can also manage
your batch and CI workloads, thus replacing containers that fail, if desired.
7. Horizontal Scaling
Kubernetes needs only 1 command to scale up the containers,
or to scale them down when using the CLI. Else, scaling can also be done via
the Dashboard (kubernetes UI).
8. Automatic Rollbacks & Rollouts
Kubernetes progressively rolls out changes and updates to
your application or its configuration, by ensuring that not all instances are
worked at the same instance. Even if something goes wrong, Kubernetes will
rollback the change for you.
These were some of the notable features of Kubernetes. Let
me delve into the attractive aspects of Kubernetes with a real-life implementation
of it and how it solved a major industry worry.
Case Study: How Kubernetes was at the center of Pokemon Go’s
evolution
I’m pretty sure everyone reading this blog would have played
this famous smartphone game. Or atleast you would have heard of this game. I’m
so sure because this game literally smashed every record set by gaming
applications in both the Android and iOS
markets.[Source]-https://www.edureka.co/blog/what-is-kubernetes-container-orchestration
Basic & Advanced Kubernetes Training Online using cloud computing, AWS,
Docker etc. in Mumbai. Advanced Containers Domain is used for 25 hours
Kubernetes Training.
Comments
Post a Comment