Storage is a crucial aspect for running applications, a great way to deploy storage with your clusters is to use Rook.
To make it quick and easy we have a curated, verified and test repository of called Kool Kubernetes that is hosting a step by step rook deployment. It takes 5 minutes in total!
Below are the steps from the repository to get you going, see the full guide here.
CSI with ROOK and ceph on Platform9 Managed Kubernetes Freedom Plan
Rook turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks such as deployment, configuration, scaling, upgrading, monitoring, resource management etc. for the distributed storage like ceph on top of kubernetes. It supports multiple storage providers Ceph, EdgeFS, CockroachDB etc. ceph being the favourite one.
Prerequisites:
- platform9 freedom tier with three worker nodes and one Master node
- Each worker node should have at least three free disks attached to it
- Metallb loadbalancer configured on bare metal cluster
Deploying the rook, ceph on kubernetes:
Clone the Kool Kubernetes repository on any machine from where the kubectl can deploy json manifests to your kubernetes cluster.
$ git clone https://github.com/KoolKubernetes/csi.git
Deploy first yaml.
$ kubectl apply -f rook/internal-ceph/1-common.yaml
Deploy the second yaml for rook operator
$ kubectl apply -f rook/internal-ceph/2-operator.yaml
configmap/rook-ceph-operator-config created
deployment.apps/rook-ceph-operator created
Verify the rook pods are running before proceeding with next deployment yaml.
$ k get all -n rook-ceph
NAME READY STATUS RESTARTS AGE
pod/rook-ceph-operator-848b8bc676-bdhc6 1/1 Running 0 64m
pod/rook-discover-7w89l 1/1 Running 0 64m
pod/rook-discover-cm5vm 1/1 Running 0 64m
pod/rook-discover-lddn2 1/1 Running 0 64m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/rook-discover 3 3 3 3 3 <none> 64m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/rook-ceph-operator 1/1 1 1 64m
NAME DESIRED CURRENT READY AGE
replicaset.apps/rook-ceph-operator-848b8bc676 1 1 1 64m
Deploy third yaml to create the ceph cluster.
$ kubectl apply -f rook/internal-ceph/3-cluster.yaml
cephcluster.ceph.rook.io/rook-ceph created
Verify all ceph pods are running. The rook-ceph-osd-prepare pods will be in completed status.
$ kubectl get po -n rook-ceph
To deploy the Rook Dashboard and more see the full guide on Kool Kubernetes.