What is Kubernetes?

What is Kubernetes?

Open source resources

Container technologies like Docker are allowing for a new approach to the way developers write and deploy applications. With containers, a developer can easily package up an application with all of the parts it needs, including libraries and other dependencies, and ship it all out as one package, but without the overhead of a traditional virtual machine.

But containers themselves, and the developer toolchain which make them easy to use, aren’t the full story. In order to build complex applications requiring different components spanning multiple containers on multiple machines, you need tools to manage and orchestrate your containers. One tool which is helping to solve the orchestration needs of containerized applications is Kubernetes.

What is Kubernetes?

Kubernetes, in short, is an open source system for managing clusters of containers. To do this, it provides tools for deploying applications, scaling those application as needed, managing changes to existing containerized applications, and helps you optimize the use of the underlying hardware beneath your containers. It is designed to be extensible, as well as fault-tolerant by allowing application components to restart and move across systems as needed.

Kubernetes is itself not a Platform as a Service (PaaS) tool, but it serves as more of a basic framework, allowing users to choose the types of application frameworks, languages, monitoring and logging tools, and other tools of their choice. In this way, Kubernetes can be used as the basis for a complete PaaS to run on top of; this is the architecture chosen by the OpenShift Origin open source project in its latest release.

The Kubernetes project is written in the Go programming language, and you can browse its source code on GitHub.

Who wrote Kubernetes?

Kubernetes was originally created by Google, who had been running similar systems to manage containers as a part of their internal infrastructure for many years prior to the announcement of Kubernetes as an open source project in 2014.

Today, Kubernetes is a true open source community, with engineers works from Google, Red Hat, and many other companies actively contributing to the project.

In addition, the Cloud Native Computing Foundation, a project of the Linux Foundation, operates to provide a common home for development of Kubernetes and other applications seeking to offer modern application infrastructure solutions.

How does Kubernetes work?

The main unit of organization in Kubernetes is called a pod. A pod is a group of containers which are administered as a group on the same machine or virtual machine, a node, and are designed to be able to easily talk to one another.

These pods can be organized into a service, which is a group of pods which work together, and can be organized with a system of labels, which allow metadata about objects like pods to be stored in Kubernetes.

All of these parts can be orchestrated in a consistent and predictable way through an API, through predefined instructions, and through a command-line client.

How can I learn more?

To get more on the basics of Kubernetes, watch this quick lightning talk from Jamie Duncan presented at All Things Open.