Add RBD CSI migration section to the storage volumes guide

Kubernetes adds the RBD CSI migration functionality via CSI
migration translation lib.

Ref# kubernetes/kubernetes#95361

This commit add the migration details to volumes.md and
feature-gates.md

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
pull/30533/head
Humble Chirammal 2021-11-17 23:35:44 +05:30
parent c688bcd8e6
commit 280229b0ec
2 changed files with 45 additions and 5 deletions

View File

@ -956,11 +956,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.
@ -975,6 +975,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
'<monitors_string>' | 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

View File

@ -81,6 +81,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 | |
@ -622,6 +623,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.