Before deploying the Ceph-CSI-Operator, ensure the following requirements are met:
- A Kubernetes cluster (supported version recommended)
- Ceph cluster (supported version recommended)
kubectl
CLI installed
Note: In this guide, we will use minimal configurations to deploy the Ceph-CSI-Operator and drivers. You can customize the configurations as per your requirements.
kubectl create -f deploy/all-in-one/install.yaml
verify the installation:
kubectl get pods -n ceph-csi-operator-system
NAME READY STATUS RESTARTS AGE
ceph-csi-operator-controller-manager-67d45fd9ff-zgst7 2/2 Running 0 40s
Once the operator is installed, deploy the Ceph-CSI drivers:
echo '
apiVersion: csi.ceph.io/v1alpha1
kind: Driver
metadata:
name: rbd.csi.ceph.com
namespace: ceph-csi-operator-system
' | kubectl create -f -
echo '
apiVersion: csi.ceph.io/v1alpha1
kind: Driver
metadata:
name: cephfs.csi.ceph.com
namespace: ceph-csi-operator-system
' | kubectl create -f -
echo '
apiVersion: csi.ceph.io/v1alpha1
kind: Driver
metadata:
name: nfs.csi.ceph.com
namespace: ceph-csi-operator-system
' | kubectl create -f -
To verify the installation, check the status of the Ceph-CSI components:
kubectl get pod -nceph-csi-operator-system
NAME READY STATUS RESTARTS AGE
ceph-csi-operator-controller-manager-744dc99cb5-scxxh 2/2 Running 0 45s
cephfs.csi.ceph.com-ctrlplugin-5847c998b5-xf85m 5/5 Running 0 27s
cephfs.csi.ceph.com-nodeplugin-r6pkt 2/2 Running 0 27s
nfs.csi.ceph.com-ctrlplugin-76fd4f5b4c-smk2g 5/5 Running 0 27s
nfs.csi.ceph.com-nodeplugin-kbzms 2/2 Running 0 27s
rbd.csi.ceph.com-ctrlplugin-6965dcfdb8-w88kn 5/5 Running 0 4m35s
rbd.csi.ceph.com-nodeplugin-lnm4n 2/2 Running 0 4m35s
Create a CephConnection CR to connect to the Ceph cluster:
echo '
apiVersion: csi.ceph.io/v1alpha1
kind: CephConnection
metadata:
name: ceph-connection
namespace: ceph-csi-operator-system
spec:
monitors:
- 10.98.44.171:6789
' | kubectl create -f -
Create a ClientProfile CR to define the client configuration which points to the CephConnection CR and the CephFS and RBD configurations:
echo '
apiVersion: csi.ceph.io/v1alpha1
kind: ClientProfile
metadata:
name: storage
namespace: ceph-csi-operator-system
spec:
cephConnectionRef:
name: ceph-connection
cephFs:
subVolumeGroup: csi
' | kubectl create -f -
Use the ClientProfile Name as the ClusterID in the required classes (StrorageClass,VolumeSnapshotClass etc).
## 7. Clean Up Resources
To clean up the resources, delete the cepconnection, clientprofile and drivers:
```console
kubectl delete cephconnection ceph-connection -n ceph-csi-operator-system
kubectl delete clientprofile storage -n ceph-csi-operator-system
kubectl delete driver rbd.csi.ceph.com -n ceph-csi-operator-system
kubectl delete driver cephfs.csi.ceph.com -n ceph-csi-operator-system
kubectl delete driver nfs.csi.ceph.com -n ceph-csi-operator-system
To uninstall the Ceph-CSI-Operator, delete the operator:
kubectl delete -f deploy/all-in-one/install.yaml
verify the deletion:
kubectl get pods -n ceph-csi-operator-system
No resources found in ceph-csi-operator-system namespace.