Ceph Storage (Rook)
Block, shared file and S3-compatible object storage for in-cluster workloads, backed by Ceph and Rook
By System · 0.5.0-master.3794
About
Overview
The Ceph Storage plugin deploys a Rook-managed Ceph cluster on your Kubernetes nodes and turns their spare raw disks into block, shared file and object storage. Once installed, create a DiskPool to contribute disks, then a BlockStorage or FileStorage to provision a StorageClass that any PersistentVolumeClaim can reference, or an ObjectStorage to provision S3-compatible buckets through ObjectBucketClaims.
Installed versions
- Rook v1.21.1
- Ceph v19.2.7
- Ceph CSI v3.18.2
Key Features
- Automatic disk discovery: nodes are scanned for raw block devices, which appear in the console as Disks
- Declarative disk pools: a DiskPool selects which discovered disks to contribute to the shared cluster
- Block, file and object storage classes: a BlockStorage produces a ready-to-use ReadWriteOnce StorageClass; a FileStorage produces a ReadWriteMany StorageClass backed by a shared filesystem with active and standby metadata servers; an ObjectStorage produces an S3-compatible object store (Ceph RGW) whose StorageClass provisions buckets for ObjectBucketClaims
- Tunable replication: set 1, 2 or 3 replicas per storage object, or leave it unset to derive the count from the number of nodes contributing disks
Use Cases
- Persistent block volumes for stateful workloads (databases, message queues)
- Shared volumes many pods can mount at once (shared caches, content repositories)
- S3-compatible buckets for in-cluster workloads (artifacts, backups, media)
- ReadWriteOnce and ReadWriteMany volumes on bare-metal or VM clusters
- Cost-effective in-cluster storage using spare raw disks
Requirements
- Raw, unpartitioned disks on the cluster nodes. Disks that already hold a filesystem or partition table are not offered.
- Cluster-admin-equivalent permissions. The Rook operator runs privileged, host-networked device-discovery DaemonSets, installs the Ceph CSI driver, and manages its own cluster-wide RBAC, so this plugin requests wildcard permissions and runs as cluster-admin on the cluster you install it into.
Limitations
- The S3 endpoint is reachable in-cluster only; exposing it externally (and standalone S3 users) is not offered yet.
- All disk pools feed one shared Ceph cluster, and data is placed across every disk in it. Additional BlockStorage/FileStorage/ObjectStorage objects give you additional StorageClasses over the same disks.
Permissions
Once installed, Ceph Storage (Rook) is granted the following access to your cluster.
This plugin asks for access to every resource in your cluster, which amounts to full administrator rights.
Can view and change 21
- All resources
*Every kind of resource in the cluster, including ones added later.
- Block storages
blockstorages - Ceph block pools
cephblockpools - Ceph clusters
cephclusters - Ceph file systems
cephfilesystems - Ceph object stores
cephobjectstores - Custom resource definitions
customresourcedefinitionsNew kinds of resources added to the cluster.
- Disk pools
diskpools - Disks
disks - File storages
filestorages - Finalizers of block storages
blockstorages/finalizersCleanup steps that must finish before the resource is removed.
- Finalizers of disk pools
diskpools/finalizersCleanup steps that must finish before the resource is removed.
- Finalizers of file storages
filestorages/finalizersCleanup steps that must finish before the resource is removed.
- Finalizers of object storages
objectstorages/finalizersCleanup steps that must finish before the resource is removed.
- Object storages
objectstorages - Status of block storages
blockstorages/statusThe state reported back on the resource.
- Status of disk pools
diskpools/statusThe state reported back on the resource.
- Status of disks
disks/statusThe state reported back on the resource.
- Status of file storages
filestorages/statusThe state reported back on the resource.
- Status of object storages
objectstorages/statusThe state reported back on the resource.
- Storage classes
storageclassesThe kinds of storage workloads can request.
Can view 2
- Config maps
configmapsNon-secret configuration data.
- Object buckets
objectbuckets