Update documentation for vSphere Persistent Volume support (#5465)

* Update vSphere Persistent Volumes section

* Update documentation for vSphere Persistent Volume support

* fix list formatting

* tweak formatting

* still more tweaks

* remove unnecessary bullets
This commit is contained in:
BaluDontu
2017-10-02 16:23:08 -07:00
committed by Andrew Chen
parent f44c14927b
commit cb4a6dce4e
+29 -51
View File
@@ -606,68 +606,46 @@ parameters:
#### vSphere #### vSphere
1. Create a persistent volume with a user specified disk format. 1. Create a StorageClass with a user specified disk format.
```yaml kind: StorageClass
kind: StorageClass apiVersion: storage.k8s.io/v1
apiVersion: storage.k8s.io/v1 metadata:
metadata: name: fast
name: fast provisioner: kubernetes.io/vsphere-volume
provisioner: kubernetes.io/vsphere-volume parameters:
parameters: diskformat: zeroedthick
diskformat: zeroedthick
```
- `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`. `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`.
2. Create a persistent volume with a disk format on a user specified datastore. 2. Create a StorageClass with a disk format on a user specified datastore.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: fast
provisioner: kubernetes.io/vsphere-volume
parameters:
diskformat: zeroedthick
datastore: VSANDatastore
```yaml `datastore`: The user can also specify the datastore in the StorageClass. The volume will be created on the datastore specified in the storage class, which in this case is `VSANDatastore`. This field is optional. If the datastore is not specified, then the volume will be created on the datastore specified in the vSphere config file used to initialize the vSphere Cloud Provider.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: fast
provisioner: kubernetes.io/vsphere-volume
parameters:
diskformat: zeroedthick
datastore: VSANDatastore
```
- `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`. 3. Storage Policy Management inside kubernetes
- `datastore`: The user can also specify the datastore in the Storageclass. The volume will be created on the datastore specified in the storage class which in this case is `VSANDatastore`. This field is optional. If not specified as in previous YAML description, the volume will be created on the datastore specified in the vsphere config file used to initialize the vSphere Cloud Provider.
3. Create a persistent volume with user specified VSAN storage capabilities. * Using existing vCenter SPBM policy
```yaml One of the most important features of vSphere for Storage Management is policy based Management. Storage Policy Based Management (SPBM) is a storage policy framework that provides a single unified control plane across a broad range of data services and storage solutions. SPBM enables vSphere administrators to overcome upfront storage provisioning challenges, such as capacity planning, differentiated service levels and managing capacity headroom.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: vsan-policy-fast
provisioner: kubernetes.io/vsphere-volume
parameters:
diskformat: thin
hostFailuresToTolerate: "1"
diskStripes: "2"
cacheReservation: "20"
datastore: VSANDatastore
```
- Here, the user can specify VSAN storage capabilities for dynamic volume provisioning inside Kubernetes. The SPBM policies can be specified in the StorageClass using the storagePolicyName parameter.
- Storage Policies capture storage requirements, such as performance and availability, for persistent volumes. These policies determine how the container volume storage objects are provisioned and allocated within the datastore to guarantee the requested Quality of Service. Storage policies are composed of storage capabilities, typically represented by a key-value pair. The key is a specific property that the datastore can offer and the value is a metric, or a range, that the datastore guarantees for a provisioned object, such as a container volume backed by a virtual disk.
- As described in [official documentation](https://pubs.vmware.com/vsphere-65/index.jsp?topic=%2Fcom.vmware.vsphere.virtualsan.doc%2FGUID-08911FD3-2462-4C1C-AE81-0D4DBC8F7990.html), VSAN exposes multiple storage capabilities. The below table lists VSAN storage capabilities that are currently supported by vSphere Cloud Provider.
Storage Capability Name | Description * Virtual SAN policy support inside Kubernetes
-------------------- | ------------
cacheReservation | Flash read cache reservation
diskStripes | Number of disk stripes per object
forceProvisioning | Force provisioning
hostFailuresToTolerate | Number of failures to tolerate
iopsLimit | IOPS limit for object
objectSpaceReservation | Object space reservation
vSphere Infrastructure(VI) administrator can specify storage requirements for applications in terms of storage capabilities while creating a storage class inside Kubernetes. Please note that while creating a StorageClass, administrator should specify storage capability names used in the table above as these names might differ from the ones used by VSAN. For example - Number of disk stripes per object is referred to as stripeWidth in VSAN documentation however vSphere Cloud Provider uses a friendly name diskStripes. Vsphere Infrastructure (VI) Admins will have the ability to specify custom Virtual SAN Storage Capabilities during dynamic volume provisioning. You can now define storage requirements, such as performance and availability, in the form of storage capabilities during dynamic volume provisioning. The storage capability requirements are converted into a Virtual SAN policy which are then pushed down to the Virtual SAN layer when a persistent volume (virtual disk) is being created. The virtual disk is distributed across the Virtual SAN datastore to meet the requirements.
You can see [vSphere example](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) for more details. You can see [Storage Policy Based Management for dynamic provisioning of volumes](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/policy-based-mgmt.html) for more details on how to use storage policies for persistent volumes management.
There are few [vSphere examples](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) which you try out for persistent volume management inside Kubernetes for vSphere.
#### Ceph RBD #### Ceph RBD