From ef74050af2f11952e301ca38d00c6ee2dc4d55fb Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Tue, 5 Mar 2019 17:46:53 +0530 Subject: [PATCH 1/3] add examples for raw block pvc and pod to mount it Signed-off-by: Madhu Rajanna --- examples/rbd/raw-block-pod.yaml | 18 ++++++++++++++++++ examples/rbd/raw-block-pvc.yaml | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 examples/rbd/raw-block-pod.yaml create mode 100644 examples/rbd/raw-block-pvc.yaml diff --git a/examples/rbd/raw-block-pod.yaml b/examples/rbd/raw-block-pod.yaml new file mode 100644 index 000000000..c433e98cc --- /dev/null +++ b/examples/rbd/raw-block-pod.yaml @@ -0,0 +1,18 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + name: pod-with-raw-block-volume +spec: + containers: + - name: fc-container + image: fedora:26 + command: ["/bin/sh", "-c"] + args: ["tail -f /dev/null"] + volumeDevices: + - name: data + devicePath: /dev/xvda + volumes: + - name: data + persistentVolumeClaim: + claimName: raw-block-pvc diff --git a/examples/rbd/raw-block-pvc.yaml b/examples/rbd/raw-block-pvc.yaml new file mode 100644 index 000000000..ee37ff33c --- /dev/null +++ b/examples/rbd/raw-block-pvc.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: raw-block-pvc +spec: + accessModes: + - ReadWriteOnce + volumeMode: Block + resources: + requests: + storage: 1Gi + storageClassName: csi-rbd From 9bebd829ab8d5c37dec31bd416cecea86032db46 Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Tue, 5 Mar 2019 17:46:17 +0530 Subject: [PATCH 2/3] update readme for raw block pvc Signed-off-by: Madhu Rajanna --- examples/README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/examples/README.md b/examples/README.md index 94b239b26..e1632b1c4 100644 --- a/examples/README.md +++ b/examples/README.md @@ -216,3 +216,65 @@ spec: If you access the pod you can check that your data is avaialable at `/var/lib/www/html` + +## Testing Raw Block feature in kubernetes with RBD volumes + +CSI block volume support is feature-gated and turned off by default. To run CSI +with block volume support enabled, a cluster administrator must enable the +feature for each Kubernetes component using the following feature gate flags: + +--feature-gates=BlockVolume=true,CSIBlockVolume=true + +these feature-gates must be enabled on both api-server and kubelet + +### create a raw-block PVC + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: raw-block-pvc +spec: + accessModes: + - ReadWriteOnce + volumeMode: Block + resources: + requests: + storage: 1Gi + storageClassName: csi-rbd +``` + +create raw block pvc + +```console +kubectl create -f raw-block-pvc.yaml +``` + +### create a pod to mount raw-block PVC + +```yaml +--- +apiVersion: v1 +kind: Pod +metadata: + name: pod-with-raw-block-volume +spec: + containers: + - name: fc-container + image: fedora:26 + command: ["/bin/sh", "-c"] + args: [ "tail -f /dev/null" ] + volumeDevices: + - name: data + devicePath: /dev/xvda + volumes: + - name: data + persistentVolumeClaim: + claimName: raw-block-pvc +``` + +Create a POD that uses raw block PVC + +```console +kubectl create -f raw-block-pod.yaml +``` From 53dfdb63b5403068e4e8ad6080da7b7bd8109a5f Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Tue, 5 Mar 2019 17:54:05 +0530 Subject: [PATCH 3/3] correct yaml examples template Signed-off-by: Madhu Rajanna --- examples/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/README.md b/examples/README.md index e1632b1c4..16238fd98 100644 --- a/examples/README.md +++ b/examples/README.md @@ -128,7 +128,7 @@ Modify your current storage class, or create a new storage class specifically for multi node writers by adding the `multiNodeWritable: "enabled"` entry to your parameters. Here's an example: -``` +```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: @@ -153,7 +153,7 @@ reclaimPolicy: Delete Now, you can request Claims from the configured storage class that include the `ReadWriteMany` access mode: -``` +```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -169,7 +169,7 @@ spec: Create a POD that uses this PVC: -``` +```yaml apiVersion: v1 kind: Pod metadata: @@ -195,7 +195,7 @@ Now, we can create a second POD (ensure the POD is scheduled on a different node; multiwriter single node works without this feature) that also uses this PVC at the same time -``` +```yaml apiVersion: v1 kind: Pod metadata: