Design doc of FlexVolume plugin driver

Change-Id: I9424cfd520b0ca6218e8790cf432392f2635a55e
This commit is contained in:
zengchen 2017-06-14 11:11:32 +08:00
parent 0678ee4ada
commit 49dc9ff29d
5 changed files with 70 additions and 5 deletions

View File

@ -18,8 +18,3 @@ Make Kubernetes integration with OpenStack storage
* Source: http://git.openstack.org/cgit/openstack/fuxi-kubernetes
* Bugs: http://bugs.launchpad.net/fuxi-kubernetes
* Blueprints: https://blueprints.launchpad.net/fuxi-kubernetes
Features
--------
* TODO

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,46 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
FlexVolume Driver
=================
As the spec `[1]`_ introduced, FlexVolume `[2]`_ driver will implement the driver
interfaces of FlexVolume plugin to enable Kubelet to consume persistent
volumes. Each driver will be loaded when Kubelet starts and be used as
the standalone FlexVolume plugin, which means that Kubelet may start
several FlexVolume plugins and each plugin binds one driver.
In Fuxi-kubernetes, FlexVolume driver consists of four components.
.. figure:: ../../images/flex_volume_driver.png
:alt: FlexVolume Driver
:align: center
1. **Driver**:
FlexVolume plugin will communicate with driver by 'call-out'. So, for plguin,
the driver should be an executable file which receives each command and
returns corresponding results. For Cinder and Manila, there is a shell
file for each of them to do this work respectively.
2. **Server**:
The real driver runs as a service and locates at the work node. It
calls Cinder and Manila to supply volume for Pod.
3. **Client**:
'Driver' will pass the commands to 'Service' via 'Client'.
4. **Host**:
The driver runs on the node which may be baremetal or vitual machine.
It needs to know the informations of work node to supply volume for Pod. 'Host'
stands for the work node and supply relevant informations, such as host name,
connector which is used to connect volumes.
References
----------
_`[1]`: https://docs.openstack.org/developer/kuryr-kubernetes/specs/pike/fuxi_kubernetes.html
_`[2]`: https://github.com/kubernetes/community/blob/master/contributors/devel/flexvolume.md

View File

@ -0,0 +1,17 @@
Developer Guide
===============
Flex Volume Driver
------------------
.. toctree::
:maxdepth: 2
flex_volume_driver
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -16,6 +16,13 @@ Using
usage
contributing
Developer Guide
===============
.. toctree::
:maxdepth: 1
devref/index
Indices and tables
==================