WIP: Persistent disks proposal

This is a draft proposal for expanding GCEPersistentDisk to a fuller PersistentDisk framework.
It GCE disks exposing ceph or gluster.  Assuming a single volume type is a mistake we'd have to correct eventually - just take it into account now.


> On Dec 19, 2014, at 8:58 AM, Andy Goldstein <notifications@github.com> wrote:
> 
> In docs/design/persistentdisks.md:
> 
> > +## Disk performance attributes -- Requesting a disk 
> > +
> > +Pod authors can request storage by its characteristics, specifically size, performance, and filesystem.  Kubernetes maps the request to the underlying cloud provider and chooses the best match.
> > +
> > +> Example: Alice requests 1gb of space for a WordPress installation expected to have low traffic.  She requests "1gb, ext4, 100 IOPS".   Kubernetes is running in AWS and matches this request to an EBS Magnetic Volume (max oops 40-200).  K8s uses the AWS API to create the disk, attach it to the host, format the filesystem, mount the volume, and then deploys Alice's pod.
> > +
> > +> Example:  Ralph requests 10gb of high performance disk space for a MySQL database.  He requests "10gb, xfs, 10000 IOPS".  Cabernets is running in GCE and matches this request to a 
> > +SSD Persistent Disk (read/write 10k/15k IOPS, respectively).  K8s uses the GCE API to create Ralph's disk, just as it did in Alice's example above.
> > +
> > +    
> > +## DiskController
> > +
> > +Add a new daemon to master that watches for changes to PersistentDisk in etcd.
> > +
> > +New disk requests are posted to the API server and are stored in etcd with "pending" status.  The DiskController sees the
> > +change and creates the disk using the cloud provider under which Kubernetes is running (i.e, AWS and GCE). Each provider knows how to make disks for its infrastructure.
> Do we need to support having NFS shares and a GCEPersistentDisk in the same cluster? I cannot imagine a good use case for this.
> 
> How about the use case where the cluster administrators want to create a GCE persistent disk or EC2 EBS volume and then use that to serve up NFS shares to users?
> 
> —
> Reply to this email directly or view it on GitHub.
>