Container Storage
CategoryCloud Computing Standards
Container Storage Interface (CSI) is a standard issued by the Kubernetes team to enable third-party Storage Providers (SP) to develop storage volume provisioning plugins (both block and mountable) portable across a number of Container Orchestration (CO) systems.
Dynamic Storage Provisioning
Uniform Container Storage Allocation
CSI Specification 1.1 defines an interface, along with the minimum operational and packaging recommendations, for a Storage Provider to implement plugins that can be deployed on a variety of compatible Container Orchestration systems.
The specification describes the communication protocol between a CO system and an SP plugin, and a the lifecycle of a dynamically provisioned storage volume (from its creation to destruction). The CO system interacts with the plugin using gRPC — an HTTP/2 based protocol maintained by the Cloud Native Computing Foundation (CNCF).
The standard Remote Procedure Call (RPC) interface defines Node Plugin and Controller Plugin endpoints, each implementing an Identity Service and offering a Node Service and a Controller Service, respectively. gRPC based communication between a CO and a plugin is transported over UNIX domain sockets — Inter-process Communication (IPC) endpoints for exchanging data between processes on the same host operating system.