One of the things tiny linux distributions lend themselves so well to are container technologies. We’ve talked about Docker here before on 24×7 IT Connection, so let’s take a look at another platform that works along with Docker, Kubernetes.
What is Kubernetes?
Kubernetes is a project by Google, which seeks to provide open source container cluster orchestration. While containers are a fascinating technology full of endless possibilities, one of the most important aspects is the management and organization of those containers. Currently, Kubernetes supports both Docker and Rocket containers, with more formats coming in the future. Kubernetes takes an approach to container deployment that is inherently highly available and self-healing. These are two things vanilla containers can’t quite do on their own at this point.
(What is Kubernetes, anyway? Image from Kubernetes.io)
The Nuts and Bolts
The base unit of deployment in Kubernetes is something called a pod. A pod is a grouping of applications with shared resources, mainly shared volumes that are visible to all of the containers in the pod. These containers survive things like restarts of pods and containers within them. For example, I may deploy a pod that contains a certain amount of capacity for an application. When I need additional capacity, I would simply deploy another pod or multiple pods that I already have defined, instead of worrying about individual containers. How does this also help me with application resiliency? The replication controller in Kubernetes handles how many replicas of a pod I have running in the environment. For example, if I have a piece of hardware fail and a pod terminate accordingly, the replication controller will start up a new pod someplace else to correct for the failure. In a nutshell, this is how Kubernetes adds an extra layer to enhance the usability of containers as they continue to evolve.
Another relatively new technology, Kubernetes 1.0 was just released in June of 2015, after initially being announced in June of 2014. As we’ve seen with other open source projects, the trajectory in this space is tremendous and continues to accelerate and speeds we can barely keep track of. There are a number of interesting and useful features in the 1.0 release, including the pod functionality we just learned about and the ability to upgrade and dynamically scale a live cluster, which we all know is of huge importance to anyone looking to run Kubernetes in a production environment. EBay, often known for their adoption of cutting edge technology (and getting cut out of a bidding war at the last second), has already adopted Kubernetes in a production fashion.
CoreOS and Techtonic
While talking about containers, we would be remiss if we didn’t mention our friends from CoreOS, their tiny linux distribution, and their container runtime environment (Rocket). Of course, Kubernetes pairs wonderfully with CoreOS linux. Just as Kubernetes hit its 1.0 release, CoreOS announced the Preview version of their new project called Tectonic. What is Tectonic? Tectonic is an easy way to get started with all of these great technologies in one, either in Amazon Web Services, or on your very own hardware. In addition to bringing all of these technologies together out of the box, Tectonic also provides a unified dashboard called the Tectonic Console. If all of this wasn’t enough to get these great technologies up and running in your data center, Tectonic Preview also comes with 24×7 support.
CoreOS has also announced they have become a part of the Cloud Native Foundation, along with Kubernetes. Also announced in conjunction with the major Kubernetes, the Cloud Native Foundation, in partnership with the Linux Foundation seeks to rally the industry around this fast moving technology, driving both standards and adoption of these technologies in the new cloud native world. Besides CoreOS and Google, familiar faces such as VMware, Red Hat, Cisco, and of course, eBay have also joined the foundation.
It should be no surprise these technologies are getting more and more focus. Both disruptive and traditional vendors are seeing the writing on the wall, containers are here for the long haul. We are poised to see some really interesting growth in this area, and much like virtualization shifted how we view the data center, containers could really drive some change in the industry. We can only guess at what Kubernetes 2.0 will bring at this point, but I’m sure it will be impressive.