TIL #6: Kubernetes

I was recently searching for local user groups that meetup around Charlotte, NC (where I live). One of the groups I found was called Kubernetes Charlotte[1]. I thought it was a weird name, so I decided to click on it. I wasn’t quite able to grasp what Kubernetes meant, but I saw mention of Docker.

Fast forward to this morning. On the way to work I was tuning into today’s Software Engineering Daily podcast with Yvette Pasqua, the CTO of Meetup (funny enough, the same place I found the user group). During the conversation, Kubernetes was brought up[2] in the context of containers. I knew it must have something to do with Docker, or containerization, but I still didn’t quite get it. Why the weird name? What does it really mean?

The Definition

Kubernetes, at its basic level, is a system for managing containerized applications across a cluster of nodes. In many ways, Kubernetes was designed to address the disconnect between the way that modern, clustered infrastructure is designed, and some of the assumptions that most applications and services have about their environments[3].

Kubernetes is an open-source platform that aims to provide a platform for automating deployment, scaling, and operations of application containers across clusters of hosts.

What are the benefits?

Kubernetes enable you to deploy applications quickly and predictably, scale applications on the fly, seamlessly roll out new features, and optimize use of hardware by using only the resources required.

Kubernetes is portable: public, private, hybrid, multi-cloud, extensible: modular, pluggable, hookable, composable, and self-healing: auto-placement, auto-restart, auto-replication, auto-scaling.

Why the weird name?

Kubernetes was originally designed by Google in 2014 and donated to the Cloud Native Computing Foundation[5]. Kubernetes builds upon the experience that Google has with scaling production workloads.

Final Thoughts

Kubernetes appears to be an enterprise solution for hosting Docker applications, or any containerized applications, in a production environment. It looks very interesting, and is definitely worth checking out in that context if you, like me, are new to the topic.

References:
[1]
https://www.meetup.com/Kubernetes-Charlotte/
[2]
https://softwareengineeringdaily.com/2017/01/06/meetup-architecture-with-yvette-pasqua/
[3]
https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes
[4]
http://kubernetes.io/docs/whatisk8s/
[5]
https://en.wikipedia.org/wiki/Kubernetes