Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit f635e96

Browse files
committed
add flexvolume background
1 parent 9e4198d commit f635e96

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

workshop/Lab5/cos-with-s3fs/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ This hands-on lab for object storage on Kubernetes is called `Add Object Storage
66

77
`IBM Cloud Object Storage plugin` is a Kubernetes volume plugin that enables Kubernetes pods to access `IBM Cloud Object Storage` buckets. The plugin has two components: a dynamic provisioner and a FlexVolume driver for mounting the buckets using `s3fs-fuse` on a worker node.
88

9-
[`s3fs`](https://github.com/s3fs-fuse/s3fs-fuse) allows Linux and macOS to mount an S3 bucket via FUSE. If you want to learn more about `s3fs-fuse` and FUSE you can do the optional [s3fs lab](../fuse/README.md).
9+
`FlexVolume` is a so-called `out-of-tree` volume plugin, as is the `Container Storage Interface (CSI)`. `Out-of-tree` volume plugins enable storage developers to create custom storage plugins. For more information about `FlexVolume`, go to [flexvolume](../../flexvolume/README.md).
10+
11+
[`s3fs`](https://github.com/s3fs-fuse/s3fs-fuse) allows Linux and macOS to mount an S3 bucket via FUSE. If you want to learn more about `s3fs-fuse` and FUSE you can do the optional [s3fs lab](../fuse/README.md).
1012

1113
![](../images/cos-plugin-architecture.png)
1214

workshop/flexvolume/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# FlexVolume
2+
3+
The [Kubernetes Storage Special Interest Group (SIG)](https://github.com/kubernetes/community/blob/master/sig-storage) defines three methods to implement a volume plugin:
4+
5+
1. In-tree volume plugin [deprecated],
6+
2. Out-of-tree FlexVolume driver [deprecated],
7+
3. Out-of-tree CSI driver.
8+
9+
Flexvolume is deprecated, but the Kubernetes Storage-SIG plans to continue to support and maintain the Flex Volume API.
10+
11+
As of Kubernetes 1.9, there are two `out-of-tree` methods to implement volume plugins: `Container Storage Interface (CSI)` and `FlexVolume`.
12+
13+
`Out-of-tree` volume plugins enable storage developers to create custom storage plugins. Before the introduction of the CSI and FlexVolume, all volume plugins were `in-tree` meaning they were built, linked, compiled, and shipped with the core Kubernetes binaries and extend the core Kubernetes API.
14+
15+
FlexVolume has existed since Kubernetes 1.2, and is a GA feature since Kubernetes 1.8. FlexVolume uses an exec-based model to interface with drivers. The FlexVolume driver binaries must be installed in a pre-defined volume plugin path on each node and in some cases the control plane nodes as well. Pods interact with FlexVolume drivers through the flexvolume in-tree volume plugin.
16+
17+
The plugin expects the following call-outs are implemented for the backend drivers. Call-outs are invoked from Kubelet and Controller Manager.
18+
19+
* Init,
20+
* Attach,
21+
* Detach,
22+
* Wait for attach,
23+
* Volume is attached,
24+
* Mount device,
25+
* Unmount device,
26+
* Mount,
27+
* Unmount.
28+
29+
For more information about FlexVolume, see [flex](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-storage/flexvolume.md)

0 commit comments

Comments
 (0)