Our mission at CoreOS is to secure the next generation of the internet by automating essential operational tasks for IT infrastructure. One important way we're delivering automated operations in Tectonic 1.7.1, which shipped in mid-August, is by enabling fully automated, one-click updates of the entire Kubernetes cluster with zero downtime, across patch and minor versions alike.
It's hard to overstate what a big deal this is for Kubernetes ops teams. Although the CoreOS Tectonic platform is built around a core of pure upstream Kubernetes, Tectonic is unique in that it automates key operational tasks. Many enterprises are unable to take advantage of the latest advances in Kubernetes, due to the resources needed and inherent costs to securely migrate from older versions. With the automation features provided by Tectonic, however, the time it takes to reliably update entire clusters is dramatically reduced, going from as much as days or weeks to minutes.
Under the hood
The key to this – and what sets the Tectonic platform apart from other Kubernetes offerings – is that Tectonic deploys Kubernetes in a self-hosted way. Essentially, it's Kubernetes running on Kubernetes: The API server and other control plane components all run on the cluster as Kubernetes objects, so they can be scheduled, executed, and managed just like any other objects in the cluster.
This advantage means that Tectonic is able to trigger an update of the Kubernetes controller manager just as reliably and predictably as it would initiate a rolling update of any application running on the cluster. And critically, it means Tectonic operators do not need to master a completely separate set of skills and tools to manage update lifecycles for Kubernetes clusters as they do to actually operate the cluster and run business applications on it.
Smooth, reliable updates
Starting from Tectonic 1.7, updates are separated into two channels: preproduction and production. This is similar to the alpha/beta/stable release channels used by other software, including CoreOS Container Linux, with an important distinction: The Tectonic preproduction and production channels are not different versions of the software, but instead are just rolled out with different timings.
CoreOS updates the various components of the preproduction Tectonic channel, then validates them against our suite of tests. If we see any problems, we will fix them in preproduction and pause the update cadence until we can validate the new changes. Once we're certain the entire system is production-ready, we move the same set of components from preproduction to production. Subscribers to the current production channel will then be notified that an update is available. Optionally, they might also have staging clusters subscribed to the preproduction channel, to test forthcoming features with their own applications.
The best part about this is that since the Tectonic update is applied as a rolling update, applications running on the cluster are unaffected and experience zero downtime. Depending on what is shipped with the update, individual nodes may reboot on a rolling basis, but the net outcome for applications should be uninterrupted business as usual – a far cry from what you can expect from a "roll your own" Kubernetes installation.
See Tectonic 1.7 in action
If you'd like to see for yourself how Tectonic's automated operations can smooth and accelerate your Kubernetes experience, CoreOS's Rob Szumski hosts an on-demand webinar on a guided tour. Sign up here to see how easy it is to begin your Kubernetes journey with Tectonic.
And if you're ready to try out Tectonic, you can deploy your own cluster of up to 10 nodes today at no cost. Check out our tutorials to help you get started deploying your first cluster on AWS or Azure.