Slide 1

Slide 1 text

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

Slide 8

Slide 8 text

Kubernetes Integration

Slide 9

Slide 9 text

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-disk spec: storageClassName: fast-storage accessModes: - ReadWriteOnce resources: requests: storage: 100Gi Kubernetes API apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: fast-storage provisioner: csi-driver.example.com parameters: foo1: bar1 foo2: bar2

Slide 10

Slide 10 text

What’s New?

Slide 11

Slide 11 text

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