Taking advantage of Kubernetes’ inherent ability to manage containerized applications, CoreOS has updated its commercial Kubernetes distribution, called Tectonic, with the ability to update itself with no downtime.
“We are able to use the exact same APIs and functionality that we have to monitor our applications to monitor Kubernetes,” said Brandon Philips, CoreOS chief technology officer, in a keynote at the company’s Tectonic Summit, taking place this week in New York. “We hook all this up to the Tectonic console, so you have a click-button deploy.”
To date, the installation process with Tectonic and Kubernetes has been “really painful,” Philips said in a follow-up interview. “Essentially people were having to do manual upgrades to a distributed system.”
Installation has typically involved SSH-ing into multiple nodes and modify the files manually, or at least write a script that would carry out these tasks, all of which requires a different set of skills than managing application son Kubernetes itself.
“Ideally, mastering kubectl and other tools to operate Kubernetes should translate into the know-how to install Kubernetes in the first place, and to keep it running over time,” a CoreOS blog post on the self-hosting capabilities pointed out.
“That is why we worked so hard to upstream in order to make this self-host technology possibility,” Philips said.
Philips likens this self-hosting capability to how Linus Torvalds now uses Linux to compile new versions of Linux. For the first version of Linux, Torvalds had to use minix as a build platform. But after Linux was stable, he ported his compiler to Linux itself in order to essentially build Linux directly on Linux.
Kubernetes itself can ensure that if one of the pods it manages goes down, it can spin up a replacement pod. In this new Tectonic release, what is spun up is the new version of Kubernetes, which is now packaged in a set of pods. Tectonic takes advantage of a new Kubernetes installation tool, called kubeadm.
In a typical Kubernetes setup, all the control nodes are set as an idea from the worker nodes. For the Tectonic update, some additional space is made on the control node to set up the updated version of Tectonic. Once the new version is running, work is switched from each component to its newer counterpart, until the update is complete. Kubernetes itself manages this update process:
The approach is similar to that CoreOS used for updating its Linux distribution (recently renamed to Container Linux). Because Tectonic is a distributed application, components are updated in a specific order, usually in the order of the API server, the scheduler, the proxy, and finally, the kubelet.
CoreOS itself delivers the updates by way of containers, through CoreUpdate, which are managed through an admin console.
For the enterprise, CoreOS will provide alpha and beta channels for enterprise testing of Tectonic before an update goes live. There are a few different ways to roll-back an update should it cause havoc. The Kubernetes data-store, etcd, can store backup information, which can be restored the previous version. The company also has guides for how to recover from various broken states, such as when a scheduler fails.
The automated updates should work well with most enterprise deployments, given that most users build on top of Tectonic, rather than modifying Tectonic itself, Philips said.
CoreOS will not be alone in offering self-hosted Kubernetes, Philips said. The technology will be included in a future edition of the software, and so other distributions will undoubtedly use this technology as well, Philips said.
CoreOS also announced the 2.0 release of Dex, an authentication provider based on OpenID Connect, a widely used authentication protocol, which can be used for managing users on Kubernetes via cryptographic tokens, linking user accounts back to an enterprise’s Lightweight Directory Access Protocol (LDAP) directory. Version two allows Kubernetes users to run Dex with no external database. Dex uses the Kubernetes APIs to persist the identification data. The previous version required an external database.
“I really think that the self-driving idea is the way of the future. That’s where we all should be going,” said Joonas Bergius, DigitalOcean engineering manager, during his own presentation at Tectonic Summit, about the new release of Tectonic.
Tectonic is now available for free for up to 10 nodes.
CoreOS is a sponsor of The New Stack.