Kubernetes is a container orchestration platform intended to help manage and proportionately distribute load across containers on each machine. It is not a conventional platform and its simplicity is key for PaaS or IaaS cloud types. Thus, Kubernetes has become the choice of many companies as it offers many guarantees since it was developed by Google. Now without this influence, it is a similar system to Docker, which is also open source, and offers an API that controls how and in what order containers are run.
The Kubernetes platform manages to organise a cluster of virtual machines, scheduling the implementation of these containers on the machines according to the resources you have available. In this case, the containers are grouped into pods. In addition, Kubernetes facilitates the deployment and operation of applications in a microservices architecture. To do this, an abstraction layer is created on top of a cluster of hosts, so that development teams can deploy their applications and let this technology manage activities such as:
Control of resource consumption by application or equipment.
Evenly spread the application load across a host infrastructure.
Automatically balance load requests between different application instances.
Monitor resource consumption and resource limits to automatically prevent applications from consuming too many resources.
Move an application instance from one host to another if there is a resource shortage on a host, or if the host dies.
Automatically leverage the additional resources available when a new host is added to the cluster.
Easily perform canary deployments and reversals. These deployments are named after canaries which, in the past, were used by miners to detect gas leaks underground. In this context, canary deployment makes it possible to observe the impact of a deployment with a low impact on users.