You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This approach allows a single StorageClass to automatically select the appropriate SimplyBlock cluster based on the Kubernetes zone where the workload runs.
271
-
It is recommended for multi-zone Kubernetes deployments that span multiple SimplyBlock clusters.
270
+
This approach allows a single StorageClass to automatically select the appropriate simplyblock cluster based on the Kubernetes zone where the workload runs.
271
+
It is recommended for multi-zone Kubernetes deployments that span multiple simplyblock clusters.
272
272
273
273
`storageclass.zoneClusterMap`
274
274
275
-
Sets the mapping between Kubernetes zones and SimplyBlock cluster IDs.
275
+
Sets the mapping between Kubernetes zones and simplyblock cluster IDs.
276
276
Each zone is associated with one cluster.
277
277
278
278
`storageclass.allowedTopologyZones`
279
279
280
280
Sets the list of zones where the StorageClass is permitted to provision volumes.
281
281
This ensures that scheduling aligns with the clusters defined in `zoneClusterMap`.
282
282
283
-
example:
284
-
285
-
```yaml
283
+
```yaml title="Example of zoneClusterMap usage"
286
284
apiVersion: storage.k8s.io/v1
287
285
kind: StorageClass
288
286
metadata:
@@ -303,4 +301,53 @@ allowedTopologies:
303
301
- us-east-1b
304
302
```
305
303
306
-
This method allows Kubernetes to automatically pick the right cluster based on the pod’s scheduling zone.
304
+
This method allows Kubernetes to automatically pick the right cluster based on the pod’s scheduling zone.
This approach allows a single StorageClass to automatically select the appropriate simplyblock cluster based on the Kubernetes region where the workload runs.
309
+
It’s recommended when:
310
+
311
+
- your cluster spans multiple regions, and
312
+
313
+
- each region maps to a different simplyblock backend, or
314
+
315
+
- you want region-scoped placement rather than zone-scoped placement
316
+
317
+
`storageclass.regionClusterMap`
318
+
319
+
Sets the mapping between Kubernetes regions and simplyblock cluster IDs.
320
+
Each region is associated with one cluster.
321
+
322
+
`storageclass.allowedTopologyRegions`
323
+
324
+
Sets the list of regions where the StorageClass is permitted to provision volumes.
325
+
This ensures scheduling aligns with the clusters defined in `regionClusterMap`.
Copy file name to clipboardExpand all lines: docs/deployments/kubernetes/k8s-storage-plane.md
+30-1Lines changed: 30 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -176,8 +176,37 @@ mode. The most important ones are:
176
176
|`storagenode.pciAllowed`| Sets the list of allowed NVMe PCIe addresses. |`<empty>`|
177
177
|`storagenode.pciBlocked`| Sets the list of blocked NVMe PCIe addresses. |`<empty>`|
178
178
|`storagenode.socketsToUse`| Sets the list of NUMA sockets to use. If a worker node has more than 1 NUMA socket, it is possible to deploy more than one simplyblock storage node per host, depending on the distribution of NVMe devices and NICs across NUMA sockets and the resource demand of other workloads. | 1 |
179
-
|`storagenode.nodesPerSocket`| Sets the number of storage nodes to be deployed per NUMA socket. It is possible to deploy one or two storage nodes per socket. This improves performance if one each NUMA socket has more than 32 cores. | 1 |
179
+
|`storagenode.nodesPerSocket`| Sets the number of storage nodes to be deployed per NUMA socket. It is possible to deploy one or two storage nodes per socket. This improves performance if one each NUMA socket has more than 32 cores.| 1 |
180
+
|`storagenode.haJMCount`| Number of HA Journal Managers. |`<empty>`|
180
181
|`storagenode.coresPercentage`| Sets the percentage of total cores (vCPUs) available to simplyblock storage node services. It must be ensured that the configured percentage yields at least 8 vCPUs per storage node. For example, if a host has 128 vCPUs on two NUMA sockets (64 each) and `--storagenode.socketsToUse=2` and `--storagenode.nodesPerSocket=1`, at least 13% (as `13% * 64 > 8`) must be set. Simplyblock does not use more than 32 vCPUs per storage node efficiently. |`<empty>`|
182
+
|`storagenode.deviceModel`| NVMe SSD model to use for device selection. Must be set together with `storagenode.sizeRange`. |`<empty>`|
183
+
|`storagenode.sizeRange`| NVMe SSD device size range expressed as `min-max` (for example `500G-1T`). Used together with `storagenode.deviceModel` to filter eligible devices. |`<empty>`|
184
+
|`storagenode.deviceNames`| Comma separated list of NVMe namespace names to be used by the storage node (for example `nvme0n1`, `nvme1n1`). Do **not** include the `/dev/` prefix. |`<empty>`|
185
+
|`storagenode.format4k`| If set to `true`, the specified devices will be formatted with a 4K sector size. Recommended for modern NVMe drives when supported. |`false`|
186
+
|`storagenode.multiCluster.enable`| Enable multi-cluster storage node support. When enabled, a single Kubernetes cluster can host storage nodes connected to multiple simplyblock clusters. |`false`|
187
+
|`storagenode.multiCluster.clusters[].cluster_id`| UUID of the simplyblock cluster this storage node should connect to. |`<empty>`|
188
+
|`storagenode.multiCluster.clusters[].secret`| Secret used to authenticate against the specified simplyblock cluster. |`<empty>`|
189
+
|`storagenode.multiCluster.clusters[].workers`| List of Kubernetes worker node names assigned to this simplyblock cluster. Storage nodes will only be scheduled on these workers. |`<empty>`|
190
+
191
+
192
+
### Multi-Cluster Storage Node Support
193
+
194
+
```yaml title="Multi-Cluster definition"
195
+
storagenode:
196
+
multiCluster:
197
+
enable: true
198
+
clusters:
199
+
- cluster_id: cluster-uuid-1
200
+
secret: cluster-secret-id-1
201
+
workers:
202
+
- worker-a-1
203
+
- worker-a-2
204
+
- cluster_id: cluster-uuid-2
205
+
secret: cluster-secret-id-2
206
+
workers:
207
+
- worker-b-1
208
+
- worker-b-2
209
+
```
181
210
182
211
!!! warning
183
212
The resources consumed by simplyblock are exclusively used and have to be aligned with resources required by other
0 commit comments