Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 704d38f

Browse files
committed
Update FAQ to reflect CSI GA
1 parent 3a54075 commit 704d38f

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

sig-storage/volume-plugin-faq.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# Kubernetes Volume Plugin FAQ for Storage Vendors
33

4-
Last Updated: 02/08/2018
4+
Last Updated: 02/21/2019
55

66
**What is Kubernetes volume plugin?**
77

@@ -12,11 +12,12 @@ A *Kubernetes Volume plugin* extends the Kubernetes volume interface to support
1212
**How do I implement a Volume plugin?**
1313

1414
There are three methods to implement a volume plugin:
15-
1. In-tree volume plugin
16-
2. Out-of-tree FlexVolume driver
15+
1. In-tree volume plugin [deprecated]
16+
2. Out-of-tree FlexVolume driver [deprecated]
1717
3. Out-of-tree CSI driver
1818

19-
The Kubernetes Storage SIG, which is responsible for all volume code in the Kubernetes core repository, is no longer accepting new in-tree volume plugins. Instead, the SIG recommends storage vendors develop plugins as either FlexVolume or CSI drivers.
19+
The Kubernetes Storage SIG, which is responsible for all volume code in the Kubernetes core repository, is no longer accepting new in-tree volume plugins.
20+
Instead, the SIG recommends storage vendors develop plugins as CSI drivers. See the [Kubernetes CSI developer documentation](https://kubernetes-csi.github.io/docs/) for details.
2021

2122
**What is an in-tree vs. out-of-tree volume plugin?**
2223

@@ -38,28 +39,39 @@ For these reasons, the Kubernetes Storage SIG choose to stop accepting new in-tr
3839
**What options do I now have to implement a Kubernetes volume plugin?**
3940

4041
As of Kubernetes 1.9, there are two out-of-tree methods to implement volume plugins: CSI and FlexVolume.
42+
As of Kubernetes 1.13, CSI is GA and the recommended way to implement volume plugins (while FlexVolume will continue to be maintained, new functionality will only be added to CSI, not FlexVolume).
4143

4244
**What happens to existing in-tree volume plugins?**
4345

4446
One of the goals of SIG Storage is to eventually have a CSI-compatible plugin for most existing in-tree plugins and migrate the in-tree plugins to CSI.
47+
For more details on that effort see:
48+
49+
* https://github.com/kubernetes/enhancements/issues/625
50+
* https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/csi-migration.md
51+
* https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/20190129-csi-migration.md
4552

4653
## Container Storage Interface (CSI)
4754

4855
**What is the Container Storage Interface (CSI)?**
4956

50-
Container Storage Interface (CSI) is a standardized mechanism for Container Orchestration Systems (COs), including Kubernetes, to expose arbitrary storage systems to containerized workloads. CSI is planned to become the primary volume plugin system for Kubernetes. It was introduced in Kubernetes 1.9 as alpha. There are plans to promote it to beta in the 1.10 to 1.11 timeframe.
57+
Container Storage Interface (CSI) is a standardized mechanism for Container Orchestration Systems (COs), including Kubernetes, to expose arbitrary storage systems to containerized workloads.
58+
59+
CSI is the primary volume plugin system for Kubernetes. It was introduced in Kubernetes 1.9 as alpha. It was promoted to beta with Kubernetes 1.10, and GA in Kubernetes 1.13.
5160

5261
For more information about CSI, see:
5362

54-
* https://kubernetes.io/blog/2018/01/introducing-container-storage-interface/
55-
* [kubernetes-csi.github.io/docs](http://kubernetes-csi.github.io/docs)
63+
* [CSI User Documentation](https://kubernetes.io/docs/concepts/storage/volumes/#csi)
64+
* [CSI Developer Documentation](http://kubernetes-csi.github.io/docs)
65+
* [Kubernetes CSI Alpha Announcement Blog Post](https://kubernetes.io/blog/2018/01/introducing-container-storage-interface/)
66+
* [Kubernetes CSI Beta Announcement Blog Post](https://kubernetes.io/blog/2018/04/10/container-storage-interface-beta/)
67+
* [Kubernetes CSI GA Announcement Blog Post](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/)
5668

5769
**What are the limitations of CSI?**
5870
* CSI implementation in Kubernetes is not yet stable/GA (currently in alpha).
5971

6072
**How do I write a CSI Driver?**
6173

62-
For more information on how to write and deploy a CSI Driver on Kubernetes, see https://kubernetes-csi.github.io/docs/CSI-Driver.html
74+
For more information on how to write and deploy a CSI Driver on Kubernetes, see https://kubernetes-csi.github.io/docs/developing.html
6375

6476
## FlexVolume
6577

@@ -70,6 +82,8 @@ FlexVolume is an out-of-tree plugin interface that has existed in Kubernetes sin
7082
For more information about Flex, see:
7183
* [Flexvolume.md]
7284

85+
Although FlexVolumes is still maintained, new functionality is only added to CSI, not to FlexVolume.
86+
7387
**What are the limitations of FlexVolume?**
7488

7589
* FlexVolume requires root access on host machine to install FlexVolume driver files.
@@ -79,11 +93,12 @@ For more information about Flex, see:
7993

8094
**Should I use CSI or FlexVolume?**
8195

82-
The Storage SIG suggests implementing a CSI driver if possible. CSI overcomes the limitations of FlexVolume listed above, and the SIG plans to focus most of its development efforts on CSI in the long term. However, CSI is currently alpha, and will take several quarters to become GA. So if depending on alpha/beta software is a concern and you have a time constraint, implementing a FlexVolume driver may be a better option.
96+
The Storage SIG strongly suggests implementing a CSI driver. CSI is GA in Kubernetes as of v1.13. CSI overcomes the limitations of FlexVolume listed above, and the SIG plans to focus future development efforts on CSI.
97+
8398

8499
**If I already have FlexVolume driver implemented, how do I migrate to CSI?**
85100

86-
If Flex Volume satisfies your requirements, there is no need to migrate to CSI. The Kubernetes Storage-SIG plans to continue to support and maintain the Flex Volume API.
101+
If you have a legacy FlexVolume driver that satisfies your requirements, there is no need to migrate to CSI. The Kubernetes Storage-SIG plans to continue to support and maintain the Flex Volume API. So you can continue to use it without worry of deprecation, but note that additional features (like topology, snapshots, etc.) will only be added to CSI not to FlexVolume.
87102

88103
For those who would still like to migrate to CSI, there is an effort underway in the storage community to build a CSI adapter for FlexVolume. This will allow existing FlexVolume implementations to easily be containerized and deployed as a CSI plugin. See [this link](https://github.com/kubernetes-csi/drivers/tree/master/pkg/flexadapter) for details. However, the adapter will be a stop-gap solution, and if migration to CSI is the goal, we recommend writing a CSI driver from scratch to take full advantage of the API.
89104

0 commit comments

Comments
 (0)