Rook Storage for Kubernetes

From WilliamsNet Wiki
Revision as of 00:41, 5 July 2020 by DrEdWilliams (talk | contribs)
Jump to navigation Jump to search

Background

Installation Process

Rook Operator

set up all the namespace, roles, bindings, and support definition

kubectl create -f common.yaml

create the rook operator

kubectl create -f operator.yaml

Using Existing Ceph Cluster

create the separate namespace where the ceph cluster definition will live

kubectl create -f common-external.yaml

create secrets based on information extracted from ceph cluster

bash ./import-external-cluster.sh

note that the above script adds too many secrets -- the operator tries to create them and errors out since they can't be changed. We need to either edit the script to not create the excess secrets or delete the ones that aren't needed see which secrets are in the namespace for the external cluster

kubectl get secret -n rook-ceph-external

these are the ones that need to be deleted (at least for now)

kubectl -n rook-ceph-external delete secret \
   rook-csi-cephfs-node rook-csi-cephfs-provisioner rook-csi-rbd-node rook-csi-rbd-provisioner

create the cluster definition

kubectl create -f cluster-external-management.yaml

create the ceph pool and storage class definition for RBD images

kubectl create -f storageclass-block.yaml

Creating an internal Ceph Cluster

Testing

Deploy the test application; each deployment requests its own Persistent Volume. The wordpress service is a LoadBalancer, so it will allocate an IP address that should give direct access to the wordpress instance. The test manifests are in the kubernetes directory:

cd rook/cluster/examples/kubernetes
kubectl create -f mysql.yaml
kubectl create -f wordpress.yaml