From the time that the world started to use containerized applications and especially from the time that Docker arrived, IT people wanted a means of orchestrating all them. Let's dive into Kubernetes from the beginning.
From 1960 and early 1970s, the IT community wanted to find ways so as to share computer resources but in robust fashion. So the breakthrough, was the concept of virtualization as it allowed the same physical computer recources to be shared among companies. It also allowed the companies to actually stop owning a server but rather lease one.
With the constant development of technology, virtualization has not been left aside in the growth cycle. Now containerization is now the most innovative solution which is the current standard in the battle to improve efficiency and resource utilization.
What is containerization?
The world container as well as docker and Kubernetes, are maritime words. When cargo is shipped from one country to another across the ocean, they are normally placed in different containers for easy management. Products of the same type are shipped in the same container and not in different ones and they don't interfere with each other. They same concept is applied in containerization in the IT world.
When you create a container, is basically like putting in a box exactly what you need for your application so as to work (libraries, operating system, database, etc) One of the most useful things about containerization apart from the utilization of a smaller amount of resources if compared to a VM, is the reusability of it. You can replicate your work in another environment which saves time and doesn't need to re-install the same components , as it happens whenever you spin a vm.
What is a docker container?
Docker is a lightweight software package that includes everything you need in order to run a container (including a mini OS, runtime resources and dependencies)
If compared to a VM, as I mentioned earlier , containers are more resource-efficient because they don't require that hypervisor (like ESXi, KVM , Hyper-V) This practically means that instead of buying a server to host in several virtual machines certain software, you can containerize them. This memory utilization is lower in containers and so you can buy cheaper machines to do the same work you used to do in the past!