CNCF to Host the Rook Project to Further Cloud-Native Storage Capabilities

By January 29, 2018 Blog

Today, the Cloud Native Computing Foundation (CNCF) Technical Oversight Committee (TOC) voted to accept Rook as the 15th hosted project alongside Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, gRPC, CoreDNS, containerd, rkt, CNI, Envoy, Jaeger, Notary and TUF.

Rook has been accepted as an inception-level project, under the CNCF Graduation Criteria v1.0An inception-level project is an early-stage project that adds value to cloud-native computing as per the CNCF charter, but may not be ready to be used in production. The CNCF supports such early-stage projects in order to foster the development of promising cloud-native technologies. The CNCF provides every project an associated maturity level of either inception, incubating or graduated.

Rook brings File, Block and Object storage systems into the Kubernetes cluster, running them seamlessly alongside other applications and services that are consuming the storage. By doing so, the cloud-native cluster becomes self-sufficient and portable across public cloud and on-premise deployments. The project has been developed to enable organizations to modernize their data centers with dynamic application orchestration for distributed storage systems running in on-premise and public cloud environments.

“Storage is one of the most important components of cloud native computing, yet persistent storage systems typically run outside the cloud native environments today,” said Chris Aniszczyk, COO of Cloud Native Computing Foundation. “Rook was one of the early adopters of the Kubernetes operator pattern and we’re excited to bring in Rook as an inception level project to advance the state of cloud native storage.”

Instead of building an entirely new storage system which requires many years to mature, Rook focuses on turning existing battle-tested storage systems like Ceph into a set of cloud-native services that run seamlessly on-top of Kubernetes. Rook integrates deeply into Kubernetes providing a seamless experience for security, policies, quotas, lifecycle management, and resource management.

In this Software Engineering Daily podcast, Bassam Tabbara, CEO of Upbound and creator of Rook, said: “Rook is essentially using the operator pattern to extend Kubernetes to support storage systems. We’ve added a concept of a storage cluster, a storage pool, an object store and a file system. Those are all new abstractions that we’ve used to extend Kubernetes”

An alpha version of Rook (release 0.6) is available now, followed by a beta and production ready versions in the first half of 2018.

Main features:

  • Software-defined storage running on commodity hardware
  • File, block and object storage presentations integrated with Ceph
  • Hyper-scale or hyper-converged storage options
  • Elastic storage that can easily scale up or down
  • Zero-touch management
  • Integrated data protection with snapshot, cloning and versioning
  • Deployable on Kubernetes.

The latest release of Kubernetes 1.9 introduced a CSI alpha implementation that makes installing new volume plugins as easy as deploying a pod, and enables third-party storage providers to develop their solutions without adding to the core Kubernetes codebase. Rook will expose storage through CSI to Kubernetes.

“It’s a natural fit to run a storage cluster on Kubernetes. It makes perfect sense to bring it into the fold and keep the unified management interface,” said Dan Kerns, Senior Director at Quantum, the initial sponsor of the Rook project. “With Rook, we wanted to create a software-defined storage cluster that could run really well in modern cloud-native environments, and the storage cluster becomes even more resilient with an orchestrator like Kubernetes.”

Community support for Rook is growing rapidly as companies and users deploy Rook in their cloud-native environments (on-premise and public cloud). Companies and organizations like HBO, UCSD Nautilus Project, Norwegian Welfare, Verne Global, FlexShopper, and Acaleph have implemented Rook as part of their storage platforms.

Notable Milestones:

  • 47 contributors
  • 1,935 GitHub stars
  • 13 releases
  • 1,463 commits
  • 1.25M+ container downloads

“We used Rook underneath our Prometheus servers at HBO, running on Kubernetes and deployed on AWS,” said Illya Chekrygin, former senior staff engineer at HBO and founding member of Upbound. “Rook made a significant improvement on the Prometheus pod restart time, virtually eliminating downtime and metrics scrape gaps. We are looking forward to Rook being in a production ready state.”

As a CNCF hosted project, Rook will be part of a neutral foundation aligned with technical interests, receive help with project governance and be provided marketing support to reach a wider audience.

“Operating storage in cloud-native environments is a significantly more difficult task than stateless containers,” said Benjamin Hindman, co-founder of Mesosphere and CNCF TOC representative and project sponsor. “We’re thrilled to have Rook as the first CNCF inception project that begins to address the difficult problem of storage orchestration.”

For more read the Rook blog, Quantum’s recent announcement on the momentum of the project, Upbound’s blog, and listen to The New Stack’s Makers Podcast or Software Engineering Daily featuring Bassam Tabbara discussing Rook and Storage on Kubernetes.