Rook — Cloud-Native Storage Orchestrator for Kubernetes
Rook turns Ceph into a first-class Kubernetes citizen by deploying, configuring, and healing distributed block, file, and object storage through an operator and a family of CRDs.
Instalación lista para agent
Este activo puede instalarse después de elegir el runtime, revisar el plan y ejecutar el comando correspondiente.
npx -y tokrepo@latest install 0085f3d4-38cf-11f1-9bc6-00163e2b0d79 --target codexEjecutar después de confirmar el plan con dry-run.
What it is
Rook is a CNCF-graduated storage orchestrator for Kubernetes. It deploys and manages Ceph -- a distributed storage system -- as native Kubernetes resources. Through a Kubernetes operator and custom resource definitions (CRDs), Rook handles provisioning, scaling, healing, and upgrading of storage clusters.
Rook targets platform teams that need persistent storage in Kubernetes without managing Ceph infrastructure manually. It provides block storage (RBD), shared filesystems (CephFS), and S3-compatible object storage (RGW).
How it saves time or tokens
Managing Ceph manually requires deep expertise in distributed storage, monitor quorums, OSD placement, and failure recovery. Rook encodes this expertise in a Kubernetes operator that handles the operational complexity. A CephCluster custom resource replaces pages of manual configuration.
Rook also handles automatic recovery: when an OSD fails, the operator detects it and rebuilds the data on healthy nodes.
How to use
- Deploy the Rook operator:
git clone --single-branch --branch release-1.14 https://github.com/rook/rook.git
cd rook/deploy/examples
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
- Create a Ceph cluster:
# cluster.yaml
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
name: rook-ceph
namespace: rook-ceph
spec:
dataDirHostPath: /var/lib/rook
mon:
count: 3
storage:
useAllNodes: true
useAllDevices: true
kubectl create -f cluster.yaml
- Create a StorageClass for dynamic provisioning:
kubectl create -f csi/rbd/storageclass.yaml
Example
# PersistentVolumeClaim using Rook-managed Ceph
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
spec:
accessModes: [ReadWriteOnce]
storageClassName: rook-ceph-block
resources:
requests:
storage: 10Gi
---
# Pod using the PVC
apiVersion: v1
kind: Pod
metadata:
name: app
spec:
containers:
- name: app
image: myapp:latest
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: app-data
Related on TokRepo
- AI Tools for DevOps -- Kubernetes and infrastructure management tools
- AI Tools for Self-Hosted -- Self-hosted infrastructure components
Common pitfalls
- Rook requires raw block devices or empty partitions on Kubernetes nodes. Using devices that already have filesystems causes deployment failures.
- Minimum 3 nodes with storage devices for a production Ceph cluster. Single-node deployments work for testing but have no redundancy.
- Ceph is resource-intensive. Each OSD daemon needs 2-4GB RAM. Plan node resources accordingly.
Preguntas frecuentes
Rook is the Kubernetes operator. Ceph is the underlying distributed storage system. Rook automates Ceph's lifecycle (deploy, scale, upgrade, heal) on Kubernetes. You interact with Rook CRDs; Rook manages Ceph.
Rook historically supported multiple storage backends, but the project now focuses exclusively on Ceph. NFS support is available through CephNFS resources.
Yes. Rook deploys Ceph's RADOS Gateway (RGW) for S3-compatible object storage. Create a CephObjectStore resource and Rook provisions the gateway endpoints.
Yes. Rook is a CNCF-graduated project used in production by many organizations. The operator handles rolling upgrades, automatic OSD recovery, and cluster scaling.
Longhorn is simpler and lighter, suitable for small clusters. Rook/Ceph is more feature-rich (block, file, object storage) and handles larger scale deployments. Choose Longhorn for simplicity, Rook for full-featured distributed storage.
Referencias (3)
- Rook GitHub Repository— Rook is a CNCF-graduated storage orchestrator for Kubernetes
- Rook Documentation— Deploys and manages Ceph through Kubernetes operator and CRDs
- Rook Ceph Documentation— Supports block, file, and object storage via Ceph
Relacionados en TokRepo
Discusión
Activos relacionados
JuiceFS — Cloud-Native POSIX File System Built on Object Storage
A high-performance distributed file system that stores data in object storage like S3 while keeping metadata in Redis, PostgreSQL, or MySQL for cloud-native workloads.
OrioleDB — Cloud-Native Storage Engine for PostgreSQL
OrioleDB is an open-source PostgreSQL extension that replaces the default storage engine with a modern cloud-native design, eliminating table bloat, reducing write amplification, and enabling S3-native storage.
Rainbond — Cloud-Native Application Platform Without Kubernetes Expertise
Rainbond is an open-source cloud-native application management platform that abstracts away Kubernetes complexity, letting developers deploy, manage, and orchestrate containerized applications through a visual interface without writing YAML.
Tekton Pipelines — Cloud-Native CI/CD Primitives for Kubernetes
Tekton Pipelines is a powerful, flexible, open-source framework for creating CI/CD systems. It runs pipelines as native Kubernetes resources using Tasks, Pipelines and TaskRuns.