Kubernetes is an open source platform for orchestrating Linux containers.
It eliminates many of the manual processes involved in the deployment and scalability of
In other words, Kubernetes allows you to easily and efficiently manage cluster of hosts on which
containers are instantiated. These clusters can manage public, private or hybrid cloud hosts.
Kubernetes is an open-source project initially developed and released by Google. Its architecture is inspired by Borg , the container-based production workload manager that Google uses internally.
Kubernetes/Borg is therefore the basis of the main online services of Google itself.
In less than three years since its first release, Kubernetes has become the de-facto standard for container orchestration, replacing or integrating proprietary systems such as Docker Swarm or Amazon ECS; it boasts an open source community of the most active and numerous existing today, and in 2017 was among the most popular projects on Github.
To keep the modern micro-service applications in production, as well
as traditional monoliths migrated to Docker containers, we need a system with:
real-time verification of the health status of the services.
AUTOSCALING: ability to orchestrate the addition or removal of knots on the cluster (horizontal autoscaling) and the status of the containers within the individual knots (vertical autoscaling) as a function of the actual load.
SERVICE DISCOVERY: ability to automatically locate the services within the cluster.
WORKLOAD MANAGEMENT: management of heterogeneous workloads, from ephemeral (pod) to persistent (storage).
SECURITY: presence of security and encryption systems able to protect user data both in the storage and on the network.
Kubernetes implements solutions for all these aspects.
Its model is based on a unified and declarative API: Kubernetes interprets configuration files that describe the desired state of the system and keep the system dynamically in that state, without the need to write and execute complex configuration scripts that take into account every possible case.
Kubernetes is suitable for all types of applications existing today, provided that these, with the stack of services necessary for their execution, are migrated to containers.