Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Extending Kubernetes or: How I Learned to Stop Worrying and Trust the Spec

David
December 13, 2018

Extending Kubernetes or: How I Learned to Stop Worrying and Trust the Spec

Kubernetes Storage is moving to a new model for volume plugin development with the new Container Storage Interface (CSI) specification, and engineers from multiple companies are now implementing CSI drivers. However, switching to this new paradigm is not without its fair share of challenges.

This talk explores some of the important lessons learned from writing a production-grade CSI driver and discusses some of the challenges that come with conforming to an actively evolving spec.

Attendees will learn about dealing with concurrent development across multiple projects, working with different interpretations of the same specification, and getting user traction on a new project when the current alternative “just works.” These issues become more relevant as Kubernetes moves towards an increasingly decoupled architecture.

David

December 13, 2018
Tweet

More Decks by David

Other Decks in Technology

Transcript

  1. About Me • Software Engineer @ Google • SIG-Storage Contributor

    • Working on/with Container Storage Interface (CSI) Specification since pre-v0.1.0 ◦ Released v1.0.0 ~a week ago • Developer for the GCP Persistent Disk CSI Driver
  2. “Code for storage plugins that are not supported on your

    platform is still a risk” - Michelle Au, Kubernetes Storage Guru
  3. “ If we found a critical bug in our plugin

    after the Kubernetes release, we don’t have a way to release the plugin separately.” - Xing Yang, OpenSDS Developer
  4. Some of the Problems to solve 1. Allow vendors to

    iterate at their own pace a. Release Decoupling 2. Stop crashes in drivers bringing down all of Kubernetes a. Binary Decoupling 3. Reducing maintenance burden for Kubernetes Approvers a. Code Decoupling
  5. What is Container Storage Interface (CSI)? • A few sidecar

    containers • Storage Drivers • Some pieces inside the container orchestrator (such as Kubernetes) • The Specification • Most importantly… lets us move storage provider code out of Kubernetes
  6. Extending Kubernetes or: How I learned to Stop Worrying and

    Trust the Spec Build a Consistent Ecosystem and Process Around a Specification David Zhu, Software Engineer @ Google Email: [email protected] Github: davidz627