From a4b1ca3faa21d275a7afeba6cba64b2bed0ca414 Mon Sep 17 00:00:00 2001 From: Travis Nielsen Date: Fri, 9 Oct 2020 15:17:59 -0600 Subject: [PATCH] docs: clarify cluster-on-pvc scenario for ceph A frequently asked question is how to configure the cluster in dynamic environments, or basically to use the cluster-on-pvc configuration. This adds more details to the examples in the docs. Signed-off-by: Travis Nielsen --- Documentation/ceph-cluster-crd.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Documentation/ceph-cluster-crd.md b/Documentation/ceph-cluster-crd.md index 2f15f8078..7796db939 100755 --- a/Documentation/ceph-cluster-crd.md +++ b/Documentation/ceph-cluster-crd.md @@ -9,15 +9,15 @@ indent: true Rook allows creation and customization of storage clusters through the custom resource definitions (CRDs). There are two different modes to create your cluster, depending on whether storage can be dynamically provisioned on which to base the Ceph cluster. -1. Specify host paths and raw devices -2. Specify the storage class Rook should use to consume storage via PVCs +1. Specify [host paths and raw devices](#host-based-cluster) +2. Specify the storage class Rook should use to consume storage [via PVCs](#pvc-based-cluster) -Following is an example for each of these approaches. +Following is an example for each of these approaches. More examples are included [later in this doc](#samples). ## Host-based Cluster -To get you started, here is a simple example of a CRD to configure a Ceph cluster with all nodes and all devices. Next example is where Mons and OSDs are backed by PVCs. -More examples are included [later in this doc](#samples). +To get you started, here is a simple example of a CRD to configure a Ceph cluster with all nodes and all devices. +The Ceph persistent data is stored directly on a host path (Ceph Mons) and on raw devices (Ceph OSDs). > **NOTE**: In addition to your CephCluster object, you need to create the namespace, service accounts, and RBAC rules for the namespace you are going to create the CephCluster in. > These resources are defined in the example `common.yaml`. @@ -35,7 +35,7 @@ spec: dataDirHostPath: /var/lib/rook mon: count: 3 - allowMultiplePerNode: true + allowMultiplePerNode: false storage: useAllNodes: true useAllDevices: true @@ -43,6 +43,10 @@ spec: ## PVC-based Cluster +In a "PVC-based cluster", the Ceph persistent data is stored on volumes requested from a storage class of your choice. +This type of cluster is recommended in a cloud environment where volumes can be dynamically created and also +in clusters where a local PV provisioner is available. + > **NOTE**: Kubernetes version 1.13.0 or greater is required to provision OSDs on PVCs. ```yaml @@ -58,6 +62,7 @@ spec: dataDirHostPath: /var/lib/rook mon: count: 3 + allowMultiplePerNode: false volumeClaimTemplate: spec: storageClassName: local-storage @@ -170,7 +175,7 @@ A specific will contain a specific release of Ceph as well as security fixes fro ### Mon Settings -* `count`: Set the number of mons to be started. The number must be odd and between `1` and `9`. If not specified the default is set to `3` and `allowMultiplePerNode` is also set to `true`. +* `count`: Set the number of mons to be started. The number must be odd and between `1` and `9`. If not specified the default is set to `3`. * `allowMultiplePerNode`: Whether to allow the placement of multiple mons on a single node. Default is `false` for production. Should only be set to `true` in test environments. * `volumeClaimTemplate`: A `PersistentVolumeSpec` used by Rook to create PVCs for monitor storage. This field is optional, and when not provided, HostPath