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
Intro
Rook
Rook brings Ceph storage under Kubernetes control. You describe the storage system with Kubernetes custom resources. The Rook operator watches those resources and reconciles Ceph toward the declared state.
This division of work is the central mental model:
your custom resources
|
v
Rook operator and controllers
|
v
Ceph daemons and CSI components
|
v
block volumes | shared files | object buckets
Rook does not replace Ceph. Ceph stores, protects, and serves the data. Rook automates deployment and management so Ceph can operate as a Kubernetes-native service.
Why Rook exists
Kubernetes schedules applications, but application state must outlive individual containers and pods. A storage system must provision capacity, attach or mount it where needed, protect the stored data, and recover from selected failures.
Ceph provides distributed block, file, and object storage. Operating Ceph directly requires coordination across monitors, managers, object storage daemons, metadata servers, gateways, networks, and storage devices.
Rook translates Kubernetes resources into those Ceph operations. You declare a CephCluster, storage pools, file systems, or object stores. The operator creates and configures the required Ceph daemons, then continues reconciling them as the cluster changes.
This operator pattern matters because deployment is not a one-time event. Nodes restart. Devices fail. configuration changes. Versions advance. Rook keeps comparing observed state with declared state and acts to close the difference.
The control plane and the data plane
Rook belongs primarily to the control plane. Its operator and controllers watch custom resources and manage Ceph components.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
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
