Rook, a storage orchestrator for Kubernetes, has released version 1.0 for production-ready workloads that use file, block, and object storage in containers. Highlights of Rook 1.0 include support for storage providers through operators like Ceph Nautilus, EdgeFS, and NFS. For instance, when a pod requests an NFS file system, Rook can provision it without any manual intervention.
Rook was the first storage project accepted into the Cloud Native Computing Foundation (CNCF), and it helps storage administrators to automate everyday tasks like provisioning, configuration, disaster recovery, deployment, and upgrading storage providers. Rook turns a distributed file system into storage services that scale and heal automatically by leveraging the Kubernetes features with the operator pattern. When administrators use Rook with a storage provider like Ceph, they only have to worry about declaring the desired state of the cluster and the operator will be responsible for setting up and configuring the storage layer in the cluster.
As of today, Ceph is the only stable storage provider in Rook; support for most other storage providers is in alpha. The current list includes Cassandra, CockroachDB, Minio, and NFS. EdgeFS support has transitioned from alpha to beta in this 1.0 release, but Rook says it’s ready for production use.
The Ceph operator in Rook now supports the latest major version of Ceph, Nautilius. Previous versions like Luminous and Mimic are still supported, and users can choose which version to run in the cluster. When a user wants to upgrade to a newer version, Rook can do it in a staggered fashion to ensure minimal disruptions. Rook has also published a simplified way to deploy Ceph into Kubernetes that removes error-prone manual configurations from the user. When a new node or device is added to the cluster, Rook will detect it automatically and rebalance data if needed.
Source: Rook’s documentation site for Ceph storage
In version 1.0, Rook adds support to OpenStack Swift, a new storage protocol in EdgeFS that complements the existing support for AWS S3. Besides, Rook now also supports the iSCSI block storage extending the options for how a user can read and write the storage layer when using EdgeFS. The EdgeFS operator comes with a GUI that simplifies storage management, including a wizard to generate a custom resource definition (CRD) to provision EdgeFS storage. Also, each EdgeFS cluster has now built-in metrics for monitoring with Prometheus. And to increase the high-availability in the cluster, a user can define failure domains to balance read replicas making data as durable and available as possible.
Source: Rook’s documentation site for EdgeFS storage
Moreover, Rook’s NFS operator has now support for dynamic provisioning storage in Kubernetes. When a pod requests an NFS file system, Rook will provision and prepare it on demand without any manual intervention from the user. Before dynamic provisioning storage, a user had to manually provision storage volumes from a storage or cloud provider and then create persistent volume objects in Kubernetes. A user can automate this process with StorageClass objects, and Rook has support for it through the NFS CRD.
Lastly, Rook said that they’re looking to continue improving the support for the existing storage providers, as well as invest further in the Rook framework to provide tools and resources to bring other storage systems into cloud-native environments. Rook’s official site has been updated to present all the progress made after the initial release. Rook’s full roadmap is available at GitHub, including future improvements and milestones to inspire any future engagement from the community.