Add fsType to aws-ebs (#10041)

* Add fsType to aws-ebs

* trivial changes to kick redeploy
This commit is contained in:
makocchi
2018-08-23 06:38:12 +09:00
committed by k8s-ci-robot
parent 80715640b3
commit e4c4652a31
@@ -11,14 +11,12 @@ weight: 30
{{% capture overview %}} {{% capture overview %}}
This document describes the concept of `StorageClass` in Kubernetes. Familiarity This document describes the concept of a StorageClass in Kubernetes. Familiarity
with [volumes](/docs/concepts/storage/volumes/) and with [volumes](/docs/concepts/storage/volumes/) and
[persistent volumes](/docs/concepts/storage/persistent-volumes) is suggested. [persistent volumes](/docs/concepts/storage/persistent-volumes) is suggested.
{{% /capture %}} {{% /capture %}}
{{< toc >}}
{{% capture body %}} {{% capture body %}}
## Introduction ## Introduction
@@ -140,6 +138,7 @@ parameters:
type: io1 type: io1
zones: us-east-1d, us-east-1c zones: us-east-1d, us-east-1c
iopsPerGB: "10" iopsPerGB: "10"
fsType: ext4
``` ```
* `type`: `io1`, `gp2`, `sc1`, `st1`. See * `type`: `io1`, `gp2`, `sc1`, `st1`. See
@@ -157,6 +156,7 @@ parameters:
of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see
[AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). [AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
A string is expected here, i.e. `"10"`, not `10`. A string is expected here, i.e. `"10"`, not `10`.
* `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`.
* `encrypted`: denotes whether the EBS volume should be encrypted or not. * `encrypted`: denotes whether the EBS volume should be encrypted or not.
Valid values are `"true"` or `"false"`. A string is expected here, Valid values are `"true"` or `"false"`. A string is expected here,
i.e. `"true"`, not `true`. i.e. `"true"`, not `true`.
@@ -240,13 +240,16 @@ parameters:
parameters are optional, empty password will be used when both parameters are optional, empty password will be used when both
`secretNamespace` and `secretName` are omitted. The provided secret must have `secretNamespace` and `secretName` are omitted. The provided secret must have
type `"kubernetes.io/glusterfs"`, e.g. created in this way: type `"kubernetes.io/glusterfs"`, e.g. created in this way:
```
kubectl create secret generic heketi-secret \ ```
--type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \ kubectl create secret generic heketi-secret \
--namespace=default --type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \
``` --namespace=default
Example of a secret can be found in ```
[glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml).
Example of a secret can be found in
[glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml).
* `clusterid`: `630372ccdc720a92c681fb928f27b53f` is the ID of the cluster * `clusterid`: `630372ccdc720a92c681fb928f27b53f` is the ID of the cluster
which will be used by Heketi when provisioning the volume. It can also be a which will be used by Heketi when provisioning the volume. It can also be a
list of clusterids, for example: list of clusterids, for example:
@@ -260,24 +263,22 @@ parameters:
* `volumetype` : The volume type and its parameters can be configured with this * `volumetype` : The volume type and its parameters can be configured with this
optional value. If the volume type is not mentioned, it's up to the provisioner optional value. If the volume type is not mentioned, it's up to the provisioner
to decide the volume type. to decide the volume type.
For example:
'Replica volume':
`volumetype: replicate:3` where '3' is replica count.
'Disperse/EC volume':
`volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count.
'Distribute volume':
`volumetype: none`
For available volume types and administration options, refer to the For example:
[Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html). * Replica volume: `volumetype: replicate:3` where '3' is replica count.
* Disperse/EC volume: `volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count.
* Distribute volume: `volumetype: none`
For further reference information, see For available volume types and administration options, refer to the
[How to configure Heketi](https://github.com/heketi/heketi/wiki/Setting-up-the-topology). [Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html).
When persistent volumes are dynamically provisioned, the Gluster plugin For further reference information, see
automatically creates an endpoint and a headless service in the name [How to configure Heketi](https://github.com/heketi/heketi/wiki/Setting-up-the-topology).
`gluster-dynamic-<claimname>`. The dynamic endpoint and service are automatically
deleted when the persistent volume claim is deleted. When persistent volumes are dynamically provisioned, the Gluster plugin
automatically creates an endpoint and a headless service in the name
`gluster-dynamic-<claimname>`. The dynamic endpoint and service are automatically
deleted when the persistent volume claim is deleted.
### OpenStack Cinder ### OpenStack Cinder
@@ -306,26 +307,30 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
1. Create a StorageClass with a user specified disk format. 1. Create a StorageClass with a user specified disk format.
kind: StorageClass ```yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass
metadata: apiVersion: storage.k8s.io/v1
name: fast metadata:
provisioner: kubernetes.io/vsphere-volume name: fast
parameters: provisioner: kubernetes.io/vsphere-volume
diskformat: zeroedthick parameters:
diskformat: zeroedthick
```
`diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`. `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`.
2. Create a StorageClass with a disk format on a user specified datastore. 2. Create a StorageClass with a disk format on a user specified datastore.
kind: StorageClass ```yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass
metadata: apiVersion: storage.k8s.io/v1
name: fast metadata:
provisioner: kubernetes.io/vsphere-volume name: fast
parameters: provisioner: kubernetes.io/vsphere-volume
diskformat: zeroedthick parameters:
datastore: VSANDatastore diskformat: zeroedthick
datastore: VSANDatastore
```
`datastore`: The user can also specify the datastore in the StorageClass. `datastore`: The user can also specify the datastore in the StorageClass.
The volume will be created on the datastore specified in the storage class, The volume will be created on the datastore specified in the storage class,
@@ -338,31 +343,31 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
* Using existing vCenter SPBM policy * Using existing vCenter SPBM policy
One of the most important features of vSphere for Storage Management is One of the most important features of vSphere for Storage Management is
policy based Management. Storage Policy Based Management (SPBM) is a policy based Management. Storage Policy Based Management (SPBM) is a
storage policy framework that provides a single unified control plane storage policy framework that provides a single unified control plane
across a broad range of data services and storage solutions. SPBM enables across a broad range of data services and storage solutions. SPBM enables
vSphere administrators to overcome upfront storage provisioning challenges, vSphere administrators to overcome upfront storage provisioning challenges,
such as capacity planning, differentiated service levels and managing such as capacity planning, differentiated service levels and managing
capacity headroom. capacity headroom.
The SPBM policies can be specified in the StorageClass using the The SPBM policies can be specified in the StorageClass using the
`storagePolicyName` parameter. `storagePolicyName` parameter.
* Virtual SAN policy support inside Kubernetes * Virtual SAN policy support inside Kubernetes
Vsphere Infrastructure (VI) Admins will have the ability to specify custom Vsphere Infrastructure (VI) Admins will have the ability to specify custom
Virtual SAN Storage Capabilities during dynamic volume provisioning. You Virtual SAN Storage Capabilities during dynamic volume provisioning. You
can now define storage requirements, such as performance and availability, can now define storage requirements, such as performance and availability,
in the form of storage capabilities during dynamic volume provisioning. in the form of storage capabilities during dynamic volume provisioning.
The storage capability requirements are converted into a Virtual SAN The storage capability requirements are converted into a Virtual SAN
policy which are then pushed down to the Virtual SAN layer when a policy which are then pushed down to the Virtual SAN layer when a
persistent volume (virtual disk) is being created. The virtual disk is persistent volume (virtual disk) is being created. The virtual disk is
distributed across the Virtual SAN datastore to meet the requirements. distributed across the Virtual SAN datastore to meet the requirements.
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) 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 for more details on how to use storage policies for persistent volumes
management. management.
There are few There are few
[vSphere examples](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) [vSphere examples](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere)
@@ -402,11 +407,12 @@ parameters:
must exist in the same namespace as PVCs. This parameter is required. must exist in the same namespace as PVCs. This parameter is required.
The provided secret must have type "kubernetes.io/rbd", e.g. created in this The provided secret must have type "kubernetes.io/rbd", e.g. created in this
way: way:
```
kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \ ```shell
--from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \ kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \
--namespace=kube-system --from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \
``` --namespace=kube-system
```
* `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`. * `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`.
* `imageFormat`: Ceph RBD image format, "1" or "2". Default is "1". * `imageFormat`: Ceph RBD image format, "1" or "2". Default is "1".
* `imageFeatures`: This parameter is optional and should only be used if you * `imageFeatures`: This parameter is optional and should only be used if you
@@ -445,11 +451,13 @@ parameters:
* `adminSecretName`: secret that holds information about the Quobyte user and * `adminSecretName`: secret that holds information about the Quobyte user and
the password to authenticate against the API server. The provided secret the password to authenticate against the API server. The provided secret
must have type "kubernetes.io/quobyte", e.g. created in this way: must have type "kubernetes.io/quobyte", e.g. created in this way:
```
kubectl create secret generic quobyte-admin-secret \ ```shell
--type="kubernetes.io/quobyte" --from-literal=key='opensesame' \ kubectl create secret generic quobyte-admin-secret \
--namespace=kube-system --type="kubernetes.io/quobyte" --from-literal=key='opensesame' \
``` --namespace=kube-system
```
* `user`: maps all access to this user. Default is "root". * `user`: maps all access to this user. Default is "root".
* `group`: maps all access to this group. Default is "nfsnobody". * `group`: maps all access to this group. Default is "nfsnobody".
* `quobyteConfig`: use the specified configuration to create the volume. You * `quobyteConfig`: use the specified configuration to create the volume. You