Rook provides a growing number of storage providers to a Kubernetes cluster, each with its own operator to deploy and manage the resources for the storage provider. One of these is Ceph: a highly scalable distributed storage solution for block storage, object storage, and shared filesystems with years of production deployments. Here the official Rook documentation.
...
In order to configure the Ceph storage cluster, the following prerogatives must be respected:
- Kubernetes cluster v1.1116 or higher;
- LVM needs to be available on the hosts where OSDs will be running;
- Raw devices or partitions (no partitions or formatted filesystems);
- Required at least three worker nodes.
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
$ git clone --single-branch --branch v1.58.87 https://github.com/rook/rook.git $ cd rook/clusterdeploy/examples/kubernetes/ceph $ kubectl create -f crds.yaml -f common.yaml -f operator.yaml |
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
$ kubectl get all -l app=rook-ceph-operator -n rook-ceph
NAME READY STATUS RESTARTS AGE
pod/rook-ceph-operator-5ff4d5c446-4ldhx 1/1 Running 0 5h40m
NAME DESIRED CURRENT READY AGE
replicaset.apps/rook-ceph-operator-5ff4d5c446 1 1 1 5h40m |
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
$ kubectl -n rook-ceph delete cephcluster rook-ceph # Verify that the cluster CRD has been deleted (kubectl -n rook-ceph get cephcluster), before continuing. # Remember that the path of the following files is "rook/clusterdeploy/examples/kubernetes/ceph". $ kubectl delete -f operator.yaml $ kubectl delete -f common.yaml $ kubectl delete -f crds.yaml |
...