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 CSI driver supports topology-aware provisioning, optimizing volume placement based on the physical infrastructure layout.
4
+
5
+
**Notes:**
6
+
7
+
1.**Volume Cloning**: Cloning only works within the same region, not across regions.
8
+
2.**Volume Migration**: We can't move volumes across regions.
9
+
3.**Remote Provisioning**: Volume provisioning is supported in remote regions (nodes or clusters outside of the region where the controller server is deployed).
10
+
11
+
> [!IMPORTANT]
12
+
> Make sure you are using the latest release v0.8.6+ to utilize the remote provisioning feature.
> **Important**: The `volumeBindingMode: WaitForFirstConsumer` setting is crucial for topology-aware provisioning. It delays volume binding and creation until a pod using the PVC is created. This allows the system to consider the pod's scheduling requirements and node assignment when selecting the most appropriate storage location, ensuring optimal data locality and performance.
40
+
41
+
#### 🖥️ Example Pod
42
+
43
+
```yaml
44
+
apiVersion: v1
45
+
kind: Pod
46
+
metadata:
47
+
name: e2e-pod
48
+
spec:
49
+
nodeSelector:
50
+
topology.linode.com/region: us-ord
51
+
tolerations:
52
+
- key: "node-role.kubernetes.io/control-plane"
53
+
operator: "Exists"
54
+
effect: "NoSchedule"
55
+
containers:
56
+
- name: e2e-pod
57
+
image: ubuntu
58
+
command:
59
+
- sleep
60
+
- "1000000"
61
+
volumeMounts:
62
+
- mountPath: /data
63
+
name: csi-volume
64
+
volumes:
65
+
- name: csi-volume
66
+
persistentVolumeClaim:
67
+
claimName: pvc-filesystem
68
+
```
69
+
70
+
This example demonstrates how to set up topology-aware provisioning using the Linode Block Storage CSI Driver. The StorageClass defines the provisioner and reclaim policy, while the PersistentVolumeClaim requests storage from this class. The Pod specification shows how to use the PVC and includes a node selector for region-specific deployment.
71
+
72
+
> [!IMPORTANT]
73
+
> To enable topology-aware provisioning, make sure to pass the following argument to the csi-provisioner sidecar:
74
+
> ```
75
+
> --feature-gates=CSINodeInfo=true
76
+
> ```
77
+
> This enables the CSINodeInfo feature gate, which is required for topology-aware provisioning to function correctly.
78
+
>
79
+
> Note: This feature is enabled by default in release v0.8.6 and later versions.
80
+
81
+
#### Provisioning Process
82
+
83
+
1. CO (Kubernetes) determines required topology based on application needs (pod scheduled region) and cluster layout.
84
+
2. external-provisioner gathers topology requirements from CO and includes `TopologyRequirement` in `CreateVolume` call.
4. Driver returns actual topology of created volume.
87
+
88
+
By leveraging topology-aware provisioning, CSI drivers ensure optimal volume placement within the infrastructure, improving performance, availability, and data locality.
0 commit comments