Introduction to Kubernetes

Google started containers back in the early 2000s. They needed a system that would manage containerized workloads and would be capable of running production workloads at scale. They developed a system they called ‘Borges‘, which was replaced by a later system dubbed ‘Omega’. Google’s dedication to the development of containers resulted in Google releasing the Kubernetes project in 2014 to the open-source community.

Kubernetes is an open-source platform for managing containerized workloads and services. It automates deploying, running and scaling the operation of containers on physical or virtual machines.

What are containers?

Containers are the virtualization of operating-system-level resources. For example, take the files in /usr, /etc, /bin and marry that with the application files and you essentially have a container.

This is a bit different from the way we traditionally virtualize. Most of our virtualization is hardware centric.  

We take a piece of hardware then install a hypervisor and operating system. We install the application on that operating system and we call it a VM.

This traditional way comes with disadvantages. For one, VMs are heavy. VMs require a lot of resources; to move them around, to bring them back to life, and to create new ones. The application team and the development of their applications generally rely on the underlying infrastructure. So if the infrastructure wasn’t capable of supporting the application, it would result in delaying application updates.

VMs simply are note agile enough for todays application centric world.

Containers, however, support this agility. This application agility is often known as continuous integration and continuous development (CI/CD) workflow. Containers are light weight and independent of one another. Containers are easy to create and easy to destroy. Also, because they are independent of the underlying infrastructure and from the host filesystem, they are portable across clouds and OS distributions.

What does Kubernetes mean? K8s?
The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s is an abbreviation derived by replacing the 8 letters “ubernete” with “8”.

What are some Kubernetes derivatives?