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.
Consider a scenario where we have multiple docker containers interacting with each other.
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.
Kubernetes help manage orchestration of the containers. Orchestration is often discussed as having an inherent intelligence or even implicitly autonomic control, but those are largely aspirations or analogies rather than technical descriptions.
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.
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