diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index fb906accfdb..eb15504cde5 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -830,11 +830,11 @@ GitHub project has [instructions](https://github.com/quobyte/quobyte-csi#quobyte ### rbd An `rbd` volume allows a -[Rados Block Device](https://docs.ceph.com/en/latest/rbd/) (RBD) volume to mount into your -Pod. Unlike `emptyDir`, which is erased when a pod is removed, the contents of -an `rbd` volume are preserved and the volume is unmounted. This -means that a RBD volume can be pre-populated with data, and that data can -be shared between pods. +[Rados Block Device](https://docs.ceph.com/en/latest/rbd/) (RBD) volume to mount +into your Pod. Unlike `emptyDir`, which is erased when a pod is removed, the +contents of an `rbd` volume are preserved and the volume is unmounted. This +means that a RBD volume can be pre-populated with data, and that data can be +shared between pods. {{< note >}} You must have a Ceph installation running before you can use RBD. @@ -849,6 +849,38 @@ Simultaneous writers are not allowed. See the [RBD example](https://github.com/kubernetes/examples/tree/master/volumes/rbd) for more details. +#### RBD CSI migration {#rbd-csi-migration} + +{{< feature-state for_k8s_version="v1.23" state="alpha" >}} + +The `CSIMigration` feature for `RBD`, when enabled, redirects all plugin +operations from the existing in-tree plugin to the `rbd.csi.ceph.com` {{< +glossary_tooltip text="CSI" term_id="csi" >}} driver. In order to use this +feature, the +[Ceph CSI driver](https://github.com/ceph/ceph-csi) +must be installed on the cluster and the `CSIMigration` and `CSIMigrationRBD` +[feature gates](/docs/reference/command-line-tools-reference/feature-gates/) +must be enabled. + +{{< note >}} + +As a Kubernetes cluster operator that administers storage, here are the +prerequisites that you must complete before you attempt migration to the +RBD CSI driver: + +* You must install the Ceph CSI driver (`rbd.csi.ceph.com`), v3.5.0 or above, + into your Kubernetes cluster. +* considering the `clusterID` field is a required parameter for CSI driver for + its operations, but in-tree StorageClass has `monitors` field as a required + parameter, a Kubernetes storage admin has to create a clusterID based on the + monitors hash ( ex:`#echo -n + '' | md5sum`) in the CSI config map and keep the monitors + under this clusterID configuration. +* Also, if the value of `adminId` in the in-tree Storageclass is different from + `admin`, the `adminSecretName` mentioned in the in-tree Storageclass has to be + patched with the base64 value of the `adminId` parameter value, otherwise this + step can be skipped. {{< /note >}} + ### secret A `secret` volume is used to pass sensitive information, such as passwords, to diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index d369723ec88..ef806fdb6ac 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -84,6 +84,7 @@ different Kubernetes components. | `CSIMigrationOpenStack` | `false` | Alpha | 1.14 | 1.17 | | `CSIMigrationOpenStack` | `true` | Beta | 1.18 | | | `CSIMigrationvSphere` | `false` | Beta | 1.19 | | +| `CSIMigrationRBD` | `false` | Alpha | 1.23 | | | `CSIStorageCapacity` | `false` | Alpha | 1.19 | 1.20 | | `CSIStorageCapacity` | `true` | Beta | 1.21 | | | `CSIVolumeHealth` | `false` | Alpha | 1.21 | | @@ -630,6 +631,13 @@ Each feature gate is designed for enabling/disabling a specific feature: operations from the GCE-PD in-tree plugin to PD CSI plugin. Supports falling back to in-tree GCE plugin if a node does not have PD CSI plugin installed and configured. Requires CSIMigration feature flag enabled. +- `CSIMigrationRBD`: Enables shims and translation logic to route volume + operations from the RBD in-tree plugin to Ceph RBD CSI plugin. Requires + CSIMigration and CSIMigrationRBD feature flags enabled and Ceph CSI plugin + installed and configured in the cluster. This flag has been deprecated in + favor of the + `InTreePluginRBDUnregister` feature flag which prevents the registration of + in-tree RBD plugin. - `CSIMigrationGCEComplete`: Stops registering the GCE-PD in-tree plugin in kubelet and volume controllers and enables shims and translation logic to route volume operations from the GCE-PD in-tree plugin to PD CSI plugin.