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.
- 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.