Ceph CSI Module - Ceph Block Device (shturval-ceph-rbd)
About the service
| Parameter | Description |
|---|---|
| GUI name | Ceph CSI Module - Ceph Block Device |
| System name (identifier) | shturval-ceph-rbd |
| Cluster Assignment | Dynamic provisioning of Ceph RBD block volumes; connecting RBD images from a Ceph cluster. |
| Critical | No |
| Public repository | Ceph CSI |
| Dependencies | shturval-networking |
| Namespace | ceph-rbd |
Purpose
shturval-ceph-rbd is a Ceph CSI module for Ceph Block Device (RBD). Allows you to mount Ceph block volumes as PersistentVolume on demand via StorageClass.
Where to configure
Services and repositories → Installed services → shturval-ceph-rbd → Manage.
Setting up storage classes: StorageClasses. Customvalues specifies csiConfig (clusterID, monitors), a secret with adminID/adminKey and, if necessary, cephconf. The required Ceph user rights (capabilities) for RBD are described in the Ceph CSI documentation.
Installation and configuration
To work, shturval-networking must be running in the cluster. During installation, it is recommended to create a separate namespace for the chart.
If the Ceph CSI module was installed when creating the cluster, manual configuration is usually not required. To enable it in an already created cluster, use Services and Repositories → Installed Services or install the shturval-ceph-rbd chart from Available Charts. If you need to redefine chart parameters, apply the changes via ShturvalServicePatch.
In Service Specifications specify customvalues:
Example customvalues (Ceph RBD)
csiConfig:
- clusterID: <your value>
monitors:
- <your value>
storageClass:
create: true
name: <your value>
clusterID: <your value>
dataPool: ""
pool: <your value>
# For MicroCeph, remove this parameter if you do not set RBD image features.
imageFeatures: layering
mounter: ""
volumeNamePrefix: ""
encrypted: ""
encryptionKMSID: ""
mapOptions: ""
unmapOptions: ""
provisionerSecret: <your value>
provisionerSecretNamespace: <your value>
controllerExpandSecret: <your value>
controllerExpandSecretNamespace: <your value>
nodeStageSecret: <your value>
nodeStageSecretNamespace: <your value>
fstype: ext4
reclaimPolicy: <your value>
allowVolumeExpansion: true
mountOptions: []
selinuxMount: true
secret:
create: true
name: <your value>
userID: <your value>
userKey: <your value>
cephconf: |
<your Ceph cluster configuration>
Important: For MicroCeph, do not leave
storageClass.imageFeaturesas an empty string (imageFeatures: ""). If the parameter is not required, remove it fromcustomvalues; if it is required, specify supported RBD image features, for examplelayering. An empty value may cause an RBD connection error.
| Parameter | Description | Example |
|---|---|---|
csiConfig[].clusterID | Unique Ceph cluster identifier | my-cluster-id |
csiConfig[].monitors | List of IP addresses of Ceph monitors | 192.168.1.1 |
secret.name | Name of the Secret being created | cephrbd-secret |
secret.userID | Ceph service account ID | client.admin |
secret.userKey | Ceph Service Account Key | sdfdff |
cephconf | Ceph configuration in text format | [global] auth cluster required = cephx |
storageClass.name | Name of the created StorageClass | csi-cephrbd-sc |
storageClass.clusterID | Ceph Cluster ID | cluster-id |
storageClass.dataPool | Erasure-coded pool for data if a separate EC pool is used | ec-data-pool |
storageClass.pool | Ceph pool for RBD images | kuberbd |
storageClass.imageFeatures | Optional comma-separated list of RBD image features. Ceph CSI creates RBD images with image format 2 and supports layering, journaling, exclusive-lock, object-map, fast-diff, deep-flatten; see the Ceph RBD documentation for feature dependencies | layering |
storageClass.mounter | Mount type, for example rbd-nbd; empty value uses default behavior | rbd-nbd |
storageClass.volumeNamePrefix | Prefix for RBD image names | shturval- |
storageClass.encrypted | Enable volume encryption with the string value true/false | “true” |
storageClass.mapOptions | Map options for krbd/nbd | krbd:lock_on_read |
storageClass.unmapOptions | unmap options for krbd/nbd | krbd:force |
storageClass.fstype | Volume file system type (default ext4) | ext4 |
storageClass.reclaimPolicy | Volume deletion policy (Retain, Delete, Recycle) | Delete |
selinuxMount | Mounting /etc/selinux host into pods for file systems with SELinux | true |
Service account access rights
Minimum rights for Ceph user (client.kuberbd):
mon 'profile rbd'
osd 'profile rbd pool=kuberbd'
Configuration notes
Use the cephconf field for Ceph client parameters common to the cluster (authentication, network, etc.) - see examples in Ceph CSI documentation for RBD.
If you need to connect several Ceph RBD instances in one cluster:
- Install each instance in a separate namespace.
- Specify a unique value for the
driverNameparameter for each instance. - Set a unique port in the
nodePlugin.httpMetrics.ContainerPortparameter for each instance.
How to deploy this service - How to deploy a new service.