Definition:
Container Storage Interface (CSI) is a standardized API that allows container orchestration systems (like Kubernetes) to communicate with any storage system (cloud storage, network storage, local disks) using a common interface. It’s like a universal adapter that lets containers use different storage backends without the orchestrator needing to know the specific details of each storage system.
Key Concept:
- Standardized Plugin: One API to connect any storage to any orchestrator
- Vendor Agnostic: Works with AWS EBS, Google Cloud Disks, Azure, NetApp, etc.
- Decoupled: Storage providers write CSI drivers, orchestrators consume them
- Dynamic Provisioning: Automatically create/delete storage as needed
Example:
WordPress Deployment
WordPress Application:
├─ Frontend (stateless) ← Can run anywhere
└─ MySQL Database (stateful) ← Needs persistent storage!
Problem: When MySQL pod dies, data must survive!
Solution: Use persistent storage via CSI