Rebuilding Gondor on Kubernetes

21st July 2015 / by Brian Rosner in General

(previously published on Gondor.io)

Eldarion has been running Gondor, our PaaS offering, successfully for the last five years. Over the last several months we have been looking to expand what Gondor can run (i.e. more than just Python) and where it can run (i.e. alternative infrastructure providers, private clouds, etc). We’ve also wanted to give our users more control over scaling their infrastructure. Our existing platform makes accomplishing these things difficult. With this in mind, we set out to rebuild our platform using newer technologies.

We started by identifying the best technology to use. During our research we found that the tools provided by CoreOS were exactly what we were after. CoreOS designed each tool to fill a gap in building scalable Linux servers. etcd deals with consensus and discovery. fleet gives you a distributed init system. flannel provides a network overlay giving containers running on several nodes a flat network. We built out some initial prototypes with these tools and found we were on the right path.

During CoreOS Fest in May, there was a lot of buzz around the Kubernetes project. The team decided to learn more about what it could provide and started prototyping Gondor components on Kubernetes. This was an incredible success. The capabilities native to Kubernetes made prototyping fast and efficient. Everything fit perfectly. Kubernetes solves every issue with our existing platform. It is lean, portable, extensible and self-healing.

Kubernetes is set up as a cluster consisting of a master and many nodes. The master is further broken up into individual parts that manage what happens on each node. The API server is responsible for dealing with first-class objects of Kubernetes (pods, replication controllers, services, namespaces, etc). Where Kubernetes really shines is in its network layout. Each node runs a proxy capable of forwarding packets and load balancing requests to any container running in the cluster.

Today, we have completely rebuilt all Gondor components to run on Kubernetes. We have started some internal testing of our own sites. We are planning to roll out the new platform to customers in the coming months.

We are very excited for the 1.0 launch of Kubernetes on Tuesday, July 21. We will be upgrading our clusters this week. The Kubernetes community has been extremely helpful and inviting. We have open-sourced two projects (k8s-http-router and piper) from the Gondor rewrite and will be contributing back even more! Stay tuned to our blog as we will be posting more technical content about our new platform.

A new helmsman has arrived on the Bay of Belfalas!

UPDATE: Visit https://next.gondor.io to sign up for our private beta or get notified when we launch.