The Container Storage Interface
The Container Storage Interface (CSI) is an initiative to standardize the interaction between container orchestrators and storage providers. It is driven by Kubernetes, Docker, Mesos, and Cloud Foundry. The idea is that storage providers implement just one CSI driver and container orchestrators need to support only the CSI. It is the equivalent of CNI for storage. There are several advantages over the FlexVolume approach:
- CSI is an industry-wide standard
- New capabilities are made available for CSI plugins only (such as volume snapshots and volume cloning)
- FlexVolume plugins require access to the node and master root filesystem to deploy drivers
- FlexVolume's storage driver often requires many external dependencies
- FlexVolume's EXEC-style interface is clunky
A CSI volume plugin was added in Kubernetes 1.9 as an alpha feature and is generally available since Kubernetes 1.13. FlexVolume will remain for...