kubectl create namespace ceph-csi git clone https://github.com/ceph/ceph-csi.git cd ceph-csi git checkout v3.15.0 # move to rbd chart. cd charts/ceph-csi-rbd cat < ceph-csi-rbd-values.yaml csiConfig: - clusterID: "004ee854-86cc-4ddc-b7d6-75e4fe962296" monitors: - "172.20.1.33:6789" - "172.20.1.34:6789" - "172.20.1.35:6789" provisioner: name: provisioner replicaCount: 2 EOF helm install --namespace ceph-csi ceph-csi --values ceph-csi-rbd-values.yaml ./ Examples on how to configure a storage class and start using the driver are here: https://github.com/ceph/ceph-csi/tree/devel/examples/rbd echo "kubernetes" | tr -d '\n' | base64 a3ViZXJuZXRlcw== cat > ceph-admin-secret.yaml << EOF apiVersion: v1 kind: Secret metadata: name: csi-rbd-secret namespace: default stringData: userID: kubernetes userKey: AQD2zo5pm8aZIRAAPzWS+dROeX7iJtv5EukfKA== EOF # create a secret for admin user. kubectl apply -f ceph-admin-secret.yaml ----- Create StorageClass ------ cat > ceph-rbd-sc.yaml < create-ceph-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: raw-block-pvc spec: accessModes: - ReadWriteOnce volumeMode: Block resources: requests: storage: 1Gi storageClassName: csi-rbd-sc EOF # create pvc kubectl apply -f create-ceph-pvc.yaml cat < create-pod-with-pvc.yaml apiVersion: v1 kind: Pod metadata: name: ceph-pod-pvc spec: containers: - name: ceph-pod-pvc image: busybox command: ["sleep", "infinity"] volumeMounts: - mountPath: /mnt/ceph_rbd name: volume volumes: - name: volume persistentVolumeClaim: claimName: raw-block-pvc EOF # create pod kubectl apply -f create-pod-with-pvc.yaml