@@ -11,13 +11,15 @@ scripts that launch kube-controller-manager.
The admin must define `StorageClass` objects that describe named "classes" of storage offered in a cluster. Different classes might map to arbitrary levels or policies determined by the admin. When configuring a `StorageClass` object for persistent volume provisioning, the admin will need to describe the type of provisioner to use and the parameters that will be used by the provisioner when it provisions a `PersistentVolume` belonging to the class.
The name of a StorageClass object is significant, and is how users can request a particular class, by specifying the name in their `PersistentVolumeClaim`. The `provisioner` field must be specified as it determines what volume plugin is used for provisioning PVs. 2 cloud providers will be provided in the beta version of this feature: EBS and GCE. The `parameters` field contains the parameters that describe volumes belonging to the storage class. Different parameters may be accepted depending on the `provisioner`. For example, the value `io1`, for the parameter `type`, and the parameter `iopsPerGB` are specific to EBS . When a parameter is omitted, some default is used.
The name of a StorageClass object is significant, and is how users can request a particular class, by specifying the name in their `PersistentVolumeClaim`. The `provisioner` field must be specified as it determines what volume plugin is used for provisioning PVs. The `parameters` field contains the parameters that describe volumes belonging to the storage class. Different parameters may be accepted depending on the `provisioner`. For example, the value `io1`, for the parameter `type`, and the parameter `iopsPerGB` are specific to EBS . When a parameter is omitted, some default is used.
See [Kubernetes StorageClass documentation](https://kubernetes.io/docs/user-guide/persistent-volumes/#storageclasses) for complete reference of all supported parameters.
#### AWS
```yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
metadata:
name:slow
provisioner:kubernetes.io/aws-ebs
...
...
@@ -37,7 +39,7 @@ parameters:
```yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
metadata:
name:slow
provisioner:kubernetes.io/gce-pd
...
...
@@ -53,7 +55,7 @@ parameters:
```yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
metadata:
name:slow
provisioner:kubernetes.io/vsphere-volume
...
...
@@ -67,7 +69,7 @@ parameters:
```yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
metadata:
name:portworx-io-priority-high
provisioner:kubernetes.io/portworx-volume
...
...
@@ -91,7 +93,7 @@ For a complete example refer ([Portworx Volume docs](../../volumes/portworx/READ
#### GLUSTERFS
```yaml
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
kind:StorageClass
metadata:
name:slow
...
...
@@ -141,7 +143,7 @@ When the persistent volumes are dynamically provisioned, the Gluster plugin auto
```yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
metadata:
name:gold
provisioner:kubernetes.io/cinder
...
...
@@ -156,7 +158,7 @@ parameters:
#### Ceph RBD
```yaml
apiVersion:storage.k8s.io/v1beta1
apiVersion:storage.k8s.io/v1
kind:StorageClass
metadata:
name:fast
...
...
@@ -184,7 +186,7 @@ parameters:
<!-- BEGIN MUNGE: EXAMPLE quobyte/quobyte-storage-class.yaml -->
Users request dynamically provisioned storage by including a storage class in their `PersistentVolumeClaim`.
The annotation `volume.beta.kubernetes.io/storage-class` is used to access this feature. It is required that this value matches the name of a `StorageClass` configured by the administrator.
In the future, the storage class may remain in an annotation or become a field on the claim itself.
Users request dynamically provisioned storage by including a storage class in their `PersistentVolumeClaim` using `spec.storageClassName` attribute.
It is required that this value matches the name of a `StorageClass` configured by the administrator.
```
{
"kind": "PersistentVolumeClaim",
"apiVersion": "v1",
"metadata": {
"name": "claim1",
"annotations": {
"volume.beta.kubernetes.io/storage-class": "slow"
"name": "claim1"
}
},
"spec": {
...
...
@@ -308,7 +307,8 @@ In the future, the storage class may remain in an annotation or become a field o