Michelle Au
Software Engineer, Google
Kubernetes SIG-Storage
Kubernetes and
Container Storage
Interface Update
Slide 2
Slide 2 text
Agenda
Background on CSI
What’s New in Kubernetes?
Future
Getting Involved
Slide 3
Slide 3 text
Background
Slide 4
Slide 4 text
What is CSI?
Specification for orchestrating control plane operations on file and block storage
- https://github.com/container-storage-interface/spec
- Create and delete
- Attach and detach
- Mount and unmount
- Snapshot and restore
Industry standard supported by multiple container orchestrators
- Kubernetes
- Mesos
- Cloud Foundry
Slide 5
Slide 5 text
Vendor Benefits
Write one driver that works across multiple orchestrators
Develop outside of Kubernetes core
- Independent release cycle
- Could be closed source
Slide 6
Slide 6 text
Kubernetes Benefits
Vendor code does not need to be imported into core repository
Vendor code cannot crash core Kubernetes components
Core maintainers don’t need to review vendor code
- More time to develop core features!
Slide 7
Slide 7 text
End User Benefits
Large ecosystem of CSI drivers available
- https://kubernetes-csi.github.io/docs/drivers.html
- Over 35!
Get bug fixes and new features faster without upgrading your
Kubernetes cluster
Kubernetes 1.13
Basic CSI support is GA
- Dynamic provisioning, attaching, mounting
- 1.0 spec added, 0.3 spec deprecated
Existing alpha features
- Snapshots
- Raw block
- Topology
Slide 12
Slide 12 text
Kubernetes 1.14
Features promoted to beta
- Raw block
- Topology
New alpha features
- Resizing
- Migration of in-tree plugins
Slide 13
Slide 13 text
Future
Slide 14
Slide 14 text
Kubernetes 1.15 and Beyond
New alpha features
- Ephemeral volumes
- Group snapshots
- Application snapshots
- Volume cloning
- Windows OS
Slide 15
Slide 15 text
Driver Management
New challenges:
- Versioning
- Backwards compatibility
- Upgrade/downgrade
Kubernetes distros can pre-package/manage qualified drivers
Slide 16
Slide 16 text
Getting Involved
Slide 17
Slide 17 text
Kubernetes SIG-Storage
Bi-weekly meetings
- https://github.com/kubernetes/community/tree/master/sig-storage
Slack
- #sig-storage on kubernetes.slack.com
Me
- Github/Slack: msau42
- Twitter: _msau42_
Slide 18
Slide 18 text
First Time Contributions
Improve test coverage
- Raw block
- Resizing
- Snapshots
- Topology
Fixing bugs
- Look for issues with “help wanted” label
- https://github.com/kubernetes-csi
- https://github.com/kubernetes/kubernetes
- Filter by label “sig/storage”
Slide 19
Slide 19 text
Questions?
Slide 20
Slide 20 text
[Extra]
Driver Deployment
Architecture
Slide 21
Slide 21 text
Deployment Architecture
Slide 22
Slide 22 text
[Extra]
Vendor Resources
Slide 23
Slide 23 text
Writing a CSI Plugin
Developer docs
- https://kubernetes-csi.github.io/docs/
Hostpath sample plugin
- https://github.com/kubernetes-csi/csi-driver-host-path
- Not for production!
Slide 24
Slide 24 text
CSI Spec Testing
Validate that your CSI plugin conforms to the CSI spec
- csi-sanity test suite
- https://github.com/kubernetes-csi/csi-test/tree/master/pkg/sanity
Slide 25
Slide 25 text
Kubernetes Testing
Run Kubernetes E2E tests against any CSI driver
- https://github.com/kubernetes/kubernetes/tree/master/test/e2e/
storage/external
- Prereq: K8s cluster with CSI driver already installed
- Future: CSI driver qualification/conformance