Rook
Rook is a Kubernetes operator that deploys and manages Ceph storage. It turns Kubernetes resources into block, shared-file, and object storage services while Ceph stores and protects the data.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Rook
Rook is the Kubernetes operator that gets Ceph storage assembled, configured, and kept pointed at the declaration. It is not a magic storage box hiding behind an agreeable bird name. Ceph still stores and protects the bytes. Rook turns Kubernetes custom resources into the arrangements Ceph needs, which is considerably more useful than collecting YAML for its own sake.
The important split is between the control path and the data path. A CephCluster is the declaration that starts the control path: Rook watches it, creates and manages Ceph components, and reports status back through Kubernetes. An application does not send its data through the operator. For volumes it uses CSI; for buckets it reaches the RADOS Gateway. The operator is the foreman, not the delivery van.
Ceph then presents three different storage contracts. RBD is a disk-like block volume reached from a claim and storage class. CephFS is a shared file-system namespace for applications that need paths and files. RGW is the object gateway for buckets and objects through an S3-compatible endpoint. One cluster can provide all three, which is convenient until somebody assumes that a bucket is a folder wearing a hat. It is not.
The surprising part is that reconciliation cannot improve the hardware plan. It cannot invent another disk, make two replicas on one host independent, supply spare recovery capacity, or turn replication into a backup. Rook can arrange the declared system repeatedly; Ceph can protect the current state through selected failures; neither can recover a history that nobody preserved independently.
Start with the Intro for the full control and data-path map. The Slides compress the three contracts and the two health layers into a visual route. The Cheatsheet is for tracing a failed claim, mount, or endpoint from Kubernetes evidence to Ceph evidence. Read the Reference tab when a real cluster is next on the agenda, especially before selecting devices or performing an upgrade. That is when the pleasant diagram meets the less optional reality of storage.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://rook.io/
Supports
- Rook as cloud-native storage for Kubernetes
- Operator-based Ceph management
- Block, file, and object storage scope
- CNCF graduated-project status
- https://rook.io/docs/rook/latest-release/Getting-Started/intro/
Supports
- Rook as an open-source cloud-native storage orchestrator
- Ceph as the storage provider managed by Rook
- Automated deployment, configuration, provisioning, scaling, upgrading, and monitoring
- Relationship between Kubernetes resources, the Rook operator, and Ceph
- https://rook.io/docs/rook/latest-release/Getting-Started/storage-architecture/
Supports
- Rook operator and Ceph daemon responsibilities
- CSI provisioning and client data paths
- Monitor, manager, OSD, MDS, and RGW roles
- Kubernetes and Ceph failure-domain relationship
- https://rook.io/docs/rook/latest-release/Getting-Started/Prerequisites/prerequisites/
Supports
- Kubernetes, host, kernel, and device prerequisites
- Raw devices, partitions, logical volumes, and block-mode persistent volumes
- RBD and CephFS client requirements
- Device file-system inspection and LVM requirements
- https://rook.io/docs/rook/latest-release/Getting-Started/quickstart/
Supports
- Operator and CephCluster deployment sequence
- Warning to test with virtual machines because local devices can be consumed
- Example cluster environments and storage selection
- Health checks for monitors, manager, OSDs, and Ceph status
- Block, shared-file, and object storage paths
- Toolbox, kubectl plugin, dashboard, and monitoring entry points
- https://rook.io/docs/rook/latest-release/CRDs/Cluster/ceph-cluster-crd/
Supports
- CephCluster as the foundational Rook custom resource
- Image, monitor, manager, networking, placement, storage, health, and disruption fields
- Declarative reconciliation behavior and resource status
- Storage-selection and cleanup implications
- https://rook.io/docs/rook/latest-release/Storage-Configuration/Block-Storage-RBD/block-storage/
Supports
- CephBlockPool and StorageClass configuration
- Ceph CSI dynamic provisioning from PersistentVolumeClaims
- RBD-backed Kubernetes volumes
- Block storage access and troubleshooting path
- https://rook.io/docs/rook/latest-release/Storage-Configuration/Shared-Filesystem-CephFS/filesystem-storage/
Supports
- CephFilesystem, metadata servers, and data pools
- CephFS StorageClass and dynamic provisioning
- Shared file-system access for Kubernetes workloads
- https://rook.io/docs/rook/latest-release/Storage-Configuration/Object-Storage-RGW/object-storage/
Supports
- CephObjectStore and RGW service deployment
- S3-compatible endpoints, users, buckets, and credentials
- Difference between object endpoints and mounted volumes
- https://rook.io/docs/rook/latest-release/Storage-Configuration/Ceph-CSI/ceph-csi-drivers/
Supports
- Ceph CSI controller and node-plugin responsibilities
- Volume provisioning, attachment, and mounting roles
- Separation between operator reconciliation and volume I/O
- https://rook.io/docs/rook/latest-release/Storage-Configuration/Monitoring/ceph-monitoring/
Supports
- Built-in Ceph metrics collectors and exporters
- Prometheus discovery, service monitors, and alert rules
- Grafana dashboards for cluster, OSD, and pool views
- Warning against storing the only monitoring system on the Ceph cluster it monitors
- https://rook.io/docs/rook/latest-release/Troubleshooting/ceph-common-issues/
Supports
- Symptom-driven troubleshooting for Ceph daemons
- Device discovery and OSD preparation diagnostics
- Operator logs, Kubernetes events, and Ceph health evidence
- https://rook.io/docs/rook/latest-release/Troubleshooting/csi-common-issues/
Supports
- Diagnosis of pending claims and failed mounts
- CSI pod, StorageClass, node-plugin, and event checks
- https://rook.io/docs/rook/latest-release/Upgrade/health-verification/
Supports
- Pre-upgrade and post-upgrade health checks
- Monitor quorum, manager, OSD, and placement-group verification
- Kubernetes pod and Ceph daemon version checks
- https://rook.io/docs/rook/latest-release/Upgrade/rook-upgrade/
Supports
- Supported Rook upgrade process
- Operator, custom-resource, and Ceph daemon checkpoints
- Need to verify health through the upgrade sequence
- https://docs.ceph.com/en/latest/architecture/
Supports
- Ceph distributed block, file, and object architecture
- Monitor, manager, OSD, MDS, RBD, CephFS, and RGW roles
- Replication and erasure coding as current-state protection
- Separation between data protection and historical backup
- https://docs.ceph.com/en/latest/rados/operations/crush-map/
Supports
- Physical failure-domain hierarchy
- Placement of replicas or erasure-coded chunks across domains
- Need to align topology with claimed failure tolerance
- https://github.com/sindresorhus/awesome
Supports
- Discovery path to the curated Kubernetes awesome list
- https://github.com/rootsongjc/awesome-cloud-native
Supports
- Curated inclusion of Rook and Ceph under storage and data management
- Curated inclusion of Helm under deployment and delivery
- Curated inclusion of Prometheus and Grafana under observability and monitoring
- https://ceph.io/en/
Supports
- Ceph project homepage, releases, community, and documentation routes
- Ceph block, file, and object storage scope
- https://helm.sh/docs/
Supports
- Helm as the Kubernetes package manager
- Chart-based installation and release management
- https://rook.io/docs/rook/latest-release/Helm-Charts/operator-chart/
Supports
- Official Rook Ceph operator chart
- Helm-based Rook installation and configuration
- https://prometheus.io/docs/introduction/overview/
Supports
- Prometheus metrics collection, time-series storage, querying, and alerting
- https://grafana.com/docs/grafana/latest/
Supports
- Grafana dashboards and visualization of metrics data
- https://www.cncf.io/projects/rook/
Supports
- Rook first commit in July 2016
- CNCF acceptance in January 2018, incubation in September 2018, and graduation in October 2020
- https://github.com/rook/rook/releases/tag/v1.0.0
Supports
- Rook v1.0 release in May 2019
- Ceph Nautilus support and experimental Ceph CSI support
- https://github.com/rook/rook/releases/tag/v1.5.0
Supports
- Rook v1.5 release in March 2021
- https://github.com/rook/rook/releases/tag/v1.8.0
Supports
- Rook v1.8 release in February 2022
- https://github.com/rook/rook/releases/tag/v1.12.0
Supports
- Rook v1.12 release in July 2023
- Ceph Reef support and experimental COSI bucket provisioning
- https://github.com/rook/rook/releases/tag/v1.14.0
Supports
- Rook v1.14 release in March 2024
- https://longhorn.io/
Supports
- Longhorn provides Kubernetes-native distributed block storage
- https://openebs.io/
Supports
- OpenEBS provides container-attached storage engines for Kubernetes workloads
- https://linbit.com/linstor/
Supports
- LINSTOR manages replicated block storage for Kubernetes
- https://portworx.com/
Supports
- Portworx provides a Kubernetes data-services platform
- https://rook.io/docs/rook/latest-release/Troubleshooting/disaster-recovery/
Supports
- Deleting Rook CRDs can leave resources terminating and stop ongoing cluster-health management
