Container technologies allow a new approach to the way how developers write and deploy applications. In order to build complex apps spanning multiple containers on multiple machines, you should apply a special tool to manage and orchestrate the containers.
Kubernetes is a platform that helps to solve the orchestration needs of containerized apps.
The topic of container management may seem narrow but there are many IT professionals who will willingly discuss it. Operationalizing containers at scale (especially in concert with microservices) can be a real challenge even for experienced experts. It will require clear planning, and professionals will add that an orchestration tool is a must. These hot discussions about containers will probably lead to the topic of using Kubernetes.
What are the roots?
Originally, the platform was created by Google. This company had been running similar systems for managing containers as a part of their internal infrastructure.
Nowadays, Kubernetes is a popular and growing open source community that combines talented engineers from Google, Red Hat, and other famous companies.
Github can be considered as a barometer of Kubernetes’ traction in the software community. The platform was one of the most discussed repositories over the past years.
Does Kubernetes have the future? Seems like more and more IT professionals and non-tech guys with a stake in the company’s software will have more discussions about it.
What is Kubernetes about?
How to explain Kubernetes and orchestration for people far from the IT industry? To understand it deeply in plain words, let’s address to experts.
Gordon Haff and William Henry in their book “From Software and Vats to Programs and Apps” wrote: “Kubernetes is an open-source platform that automates Linux container operations. It eliminates many of the manual processes involved in deploying and scaling containerized applications. In other words, you can cluster together groups of hosts running Linux containers, and Kubernetes helps you easily and efficiently manage those clusters.”
Kubernetes architecture: how does it work?
In Kubernetes, the core unit of organization is called a “pod”. It is a group of containers that are administered as a group on the same virtual machine.
The pods can be organized into a service that looks like a group of pods. They work together and can be organized with a system of labels. These parts can be orchestrated in a consistent and predictable way through an API, predefined instructions, and a command-line client.
Here it’s also worth to explain it with the help of experts’ replicas:
“Kubernetes is an orchestration layer that allows users to more effectively run workloads using containers — from keeping long-running services “always on” to more efficiently managing intensive shorter-term tasks like builds.”
Nick Young, principal engineer at Atlassian
“Kubernetes is an open source project that enables software teams of all sizes, from a small startup to a Fortune 100 company, to automate deploying, scaling and managing applications on a group or cluster of server machines. These applications can include everything from internal-facing web applications like a content management system to marquee web properties like Gmail to big data processing.”
Joe Beda, CTO at Heptio, one of Kubernetes’ original developers
“Kubernetes is software that manages many server computers and runs a large number of programs across those computers. On Kubernetes, all programs run in containers so that they can be isolated from each other, and be easy to develop and deploy.”
Kimoon Kim, senior architect at Pepperdata
“Containerization is this trend that’s taking over the world to allow people to run all kinds of different applications in a variety of different environments. When they do that, they need an orchestration solution in order to keep track of all of those containers and schedule them and orchestrate them. Kubernetes is an increasingly popular way to do that.”
Dan Kohn, executive director of the CNCF (in a podcast with Gordon Haff)
Hopefully, these explanations are rather insightful.
Kubernetes taps containers potential. How?
If we refer again to the authors of the book “From Software and Vats to Programs and Apps”, they admit that Kubernetes clusters “can span hosts across public, private, or hybrid clouds.” (They also note that “for performance and other reasons, it’s often recommended that individual clusters should be limited to a single physical location.”)
That’s why Kubernetes looks considerably alluring for companies trying to figure out how to properly manage containers at scale.
Haff and Henry added: “Kubernetes provides a platform to schedule and run containers on clusters of physical or virtual machines. More broadly, it helps you fully implement and rely on a container-based infrastructure in production environments. And to do so in a way that automates many operational tasks.”
To sum this up, let’s come to the simple conclusion – Kubernetes is a smart tool that helps IT make the potential of containers an operational reality. What do you think about t and its benefits?