COSI – Container Object Storage Interface. With reference to Kubernetes.io this is a standard for provisioning and consuming object storage in Kubernetes. Developers use the Kubernetes API to provision, configure and manage buckets. Vendor neutrality is enabled through portability across Kubernetes Clusters and across Object Storage vendors.
COSI is made up of three components:
- COSI Controller Manager
- COSI Sidecar
- COSI Driver
The COSI Controller Manager acts as the main controller that processes changes to COSI API objects. It is responsible for fielding requests for bucket creation, updates, deletion and access management. One instance of the controller manager is required per kubernetes cluster. Only one is needed even if multiple object storage providers are used in the cluster.
The COSI Sidecar acts as a translator between COSI API requests and vendor-specific COSI Drivers. This component uses a standardized gRPC protocol that vendor drivers are expected to satisfy.
The COSI Driver is the vendor specific component that receives requests from the sidecar and calls the appropriate vendor APIs to create buckets, manage their lifecycle and manage access to them.
As an example, Dell has released a COSI driver (Oct 2023). This will provide the ability to dynamically provision and manage Object Storage from Dell ObjectScale Storage.