Kubernetes (abbreviated "K8s") is a software for orchestrating containers. As an open source project, Kubernetes (Greek for helmsman, captain) was launched by Google in 2014. At that time, Google had long been running a very powerful software solution for container orchestration, tuned to its own technologies, called "Borg" (later "Omega"). Developers of Borg were also involved in the development of Kubernetes, contributing many of their own experiences. The goal was to create a container orchestration that could be used by anyone.
Although other container orchestration solutions existed before Kubernetes, Kubernetes has evolved rapidly and has become the de facto standard since late 2017.
What makes Kubernetes so special?
Kelsey Hightower, Google employee and Kubernetes expert, comments:
Kubernetes does the things that the very best system administrator would do: automation, failover, centralized logging, monitoring. It takes what we've learned in the DevOps community and makes it the default, out of the box.
Kubernetes automates many things that previously had to be done by system administrators, e.g. network configuration, load balancing, upgrades, patches, etc.
Some of these tasks are built directly into Kubernetes, such as load balancing or auto-scaling, while others are provided as add-ons or extensions.
Kubernetes is therefore a great help for system administrators. But Kubernetes also offers decisive advantages for software development, since time and effort for deployment are significantly reduced. Thus also Zero-Downtime Deployments no problem, since Kubernetes as a standard so-called rolling updates performs.
Also particularly useful is the Automatic scaling in Kubernetes. Load peaks no longer automatically lead to application downtime. For example, when a specified CPU load is reached, additional containers of the same type (so-called replicas) can be added until the workload has dropped below a defined value again. If the workload then drops again, this predefined process can also be executed in reverse order to conserve resources.
Kubernetes can help reduce IT infrastructure costs by making better use of available resources. Physical servers and also cloud servers very often run idle. These resources are kept as stock mostly unused. With Kubernetes, multiple workloads can use these resources and reduce the Autoscaling and automatic failover have also already been implemented.
Autoscaling was already offered by various cloud providers before Kubernetes. With the help of Kubernetes, however, this functionality can be used independently of the respective cloud provider, since Kubernetes forms the quasi uniform platform for the operation of one's own application and can in turn be used at various cloud providers or in-house.
Kubernetes thus offers a whole range of advantages and the greatest possible independence for the operation of applications. You are welcome to test Kubernetes with us test, a of our workshops visit or talk to us about your individual requirements.