Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updates for block volumes #6554

Merged
merged 1 commit into from
Dec 7, 2017
Merged

Conversation

erinboyd
Copy link

@erinboyd erinboyd commented Dec 4, 2017

Documentation updates for raw block volume support in for v1.9 as Alpha support


This change is Reviewable

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Dec 4, 2017
@k8sio-netlify-preview-bot
Copy link
Collaborator

k8sio-netlify-preview-bot commented Dec 4, 2017

Deploy preview ready!

Built with commit cbe2ba4

https://deploy-preview-6554--kubernetes-io-master-staging.netlify.com

@erinboyd erinboyd force-pushed the block-updates branch 3 times, most recently from 59164b3 to cbe2ba4 Compare December 4, 2017 23:05
@erinboyd
Copy link
Author

erinboyd commented Dec 4, 2017

@msau42 @mtanino @saad-ali Please review.

@erinboyd
Copy link
Author

erinboyd commented Dec 4, 2017

@zacharysarah New PR (I closed the last one) please let me know if you need me to update anything for 1.9 specifically

Copy link
Contributor

@tengqm tengqm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please propose to release-1.9 branch

@@ -417,6 +429,86 @@ spec:

`PersistentVolumes` binds are exclusive, and since `PersistentVolumeClaims` are namespaced objects, mounting claims with "Many" modes (`ROX`, `RWX`) is only possible within one namespace.

## Raw Block Volume Support

Static provisioning support for Raw Block Volumes is included as an alpha feature for v1.9. With this change are some new API labels that need to be used to facilitate this functionality. Currently, Fibre Channel is the only supported plugin for this feature.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't refer to the new resource field(s) as label(s). It is confusing because ”label“ in Kubernetes is a special term.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes. I can see how that can be confusing. I'll update. Thanks, @tengqm

@zacharysarah zacharysarah changed the base branch from master to release-1.9 December 5, 2017 20:05
@zacharysarah
Copy link
Contributor

@erinboyd 👋 Base branch changed to release-1.9

@zacharysarah zacharysarah mentioned this pull request Dec 5, 2017
Copy link
Contributor

@zacharysarah zacharysarah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good start! ✨ Some minor edits for clarity and format.

@@ -203,6 +206,10 @@ Generally, a PV will have a specific storage capacity. This is set using the PV

Currently, storage size is the only resource that can be set or requested. Future attributes may include IOPS, throughput, etc.

### Volume Mode

Prior to v1.9, the default behavior for all volume plugins was to create a filesystem on the persistent volume. With v1.9, the user can specify a volumeMode which will now support raw block devices in addition to fileystems. This feature is alpha in v1.9 and may change in the future. Valid values for volumeMode are "Filesystem" or "Block". If left unspecified it will default to "Filesystem" internally. This is an optional API parameter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prior to v1.9, the default behavior for all volume plugins was to create a filesystem on the persistent volume. With v1.9, the user can specify a volumeMode which will now support raw block devices in addition to file systems. Valid values for volumeMode are "Filesystem" or "Block". If left unspecified, volumeMode defaults to "Filesystem" internally. This is an optional API parameter. 

**Note:** This feature is alpha in v1.9 and may change in the future. 
{: .note}

So:

Prior to v1.9, the default behavior for all volume plugins was to create a filesystem on the persistent volume. With v1.9, the user can specify a volumeMode which will now support raw block devices in addition to file systems. Valid values for volumeMode are "Filesystem" or "Block". If left unspecified, volumeMode defaults to "Filesystem" internally. This is an optional API parameter.

Note: This feature is alpha in v1.9 and may change in the future.
{: .note}

```
#### Volume Devices

Since we aren't mounting a filesystem, when using a raw block device for a pod we specify the device path in the container rather than a mount path.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**Note:** When mounting a raw block device for a Pod instead of a file system, specify the device path in the container instead of a mount path.
{: .note}

So:

Note: When mounting a raw block device for a Pod instead of a file system, specify the device path in the container instead of a mount path.
{: .note}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer to use 'attaching' for raw block device. Mounting a raw block device is little bit strange expression.


When attaching a raw block device for a Pod instead of mounting a file system, specify the device path in the container instead of a mount path.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But will attaching be confused with volume attaching

Copy link

@mtanino mtanino Dec 6, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree.
In the docker document, they use 'add' for device. Do we use same term or mounting is ok for this case?

--device |   | Add a host device to the container

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add is probably the best option

persistentVolumeClaim:
claimName: block-pvc
```
#### Volume Devices
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete this heading.


### Binding Block Volumes

If a user requests a raw block volume by indicating this using the volumeMode label in the PersistentVolumeClaim spec, the binding rules differ slighty from previous releases that didn't consider this mode as part of the spec.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If a user requests a raw block volume using the volumeMode label in the PersistentVolumeClaim spec, the binding rules differ slighlyty from previous releases that didn't consider this mode as part of the spec.

So:

If a user requests a raw block volume using the volumeMode label in the PersistentVolumeClaim spec, the binding rules differ slighlyty from previous releases that didn't consider this mode as part of the spec.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a blank line after this paragraph.

### Binding Block Volumes

If a user requests a raw block volume by indicating this using the volumeMode label in the PersistentVolumeClaim spec, the binding rules differ slighty from previous releases that didn't consider this mode as part of the spec.
Listed is a table of possible combinations the user and admin might specify for requesting a raw block device. The table indicates if the volume will be bound or not given the combinations:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following table shows possible combinations a user and admin might specify for requesting a raw block device. The table indicates if the volume will be bound or not for a given combinations:

So:

The following table shows possible combinations a user and admin might specify for requesting a raw block device. The table indicates if the volume will be bound or not for a given combinations:


If a user requests a raw block volume by indicating this using the volumeMode label in the PersistentVolumeClaim spec, the binding rules differ slighty from previous releases that didn't consider this mode as part of the spec.
Listed is a table of possible combinations the user and admin might specify for requesting a raw block device. The table indicates if the volume will be bound or not given the combinations:
Volume binding matrix for statically provisioned volumes:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete this line.

| Filesystem | Block | NO BIND |
| Filesystem | unspecified | BIND |

Please note for alpha release only statically provisioned volumes are supported thus care should be taken by the administrator to consider these value when working with raw block devices.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**Note:** Only statically provisioned volumes are supported for alpha release. Administrators should take care to consider these values when working with raw block devices.
{: .note}

So:

Note: Only statically provisioned volumes are supported for alpha release. Administrators should take care to consider these values when working with raw block devices.
{: .note}

@k8sio-netlify-preview-bot
Copy link
Collaborator

k8sio-netlify-preview-bot commented Dec 6, 2017

Deploy preview ready!

Built with commit 5a41dcd

https://deploy-preview-6554--kubernetes-io-vnext-staging.netlify.com

@erinboyd
Copy link
Author

erinboyd commented Dec 6, 2017

@zacharysarah @mtanino @msau42 Updated. Please review

@zacharysarah
Copy link
Contributor

@tengqm 👋 It looks like the changes meet your review requirements. Can you please switch your review to approval?

@zacharysarah
Copy link
Contributor

@mtanino @msau42 👋 Bumping for tech review. Does this PR look good?

@mtanino
Copy link

mtanino commented Dec 6, 2017

lgtm from my side.

@tengqm tengqm merged commit 736fb02 into kubernetes:release-1.9 Dec 7, 2017
@@ -203,6 +206,13 @@ Generally, a PV will have a specific storage capacity. This is set using the PV

Currently, storage size is the only resource that can be set or requested. Future attributes may include IOPS, throughput, etc.

### Volume Mode

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add this alpha tag to the beginning of each new section? Then you don't need the alpha note.

{% assign for_k8s_version="v1.9" %}{% include feature-state-alpha.md %}

@@ -335,6 +346,10 @@ spec:

Claims use the same conventions as volumes when requesting storage with specific access modes.

### Volume Modes

Claims use the same convention as volumes to indicates the consumption of the volume as either a filesystem or block device.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to indicate

@@ -417,6 +432,87 @@ spec:

`PersistentVolumes` binds are exclusive, and since `PersistentVolumeClaims` are namespaced objects, mounting claims with "Many" modes (`ROX`, `RWX`) is only possible within one namespace.

## Raw Block Volume Support

Static provisioning support for Raw Block Volumes is included as an alpha feature for v1.9. With this change are some new API fields that need to be used to facilitate this functionality. Currently, Fibre Channel is the only supported plugin for this feature.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second sentence:
Raw block volumes can be specified through new API fields.


### Binding Block Volumes

If a user requests a raw block volume by indicating this using the volumeMode field in the PersistentVolumeClaim spec, the binding rules differ slighty from previous releases that didn't consider this mode as part of the spec.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If a user requests a raw block volume through the persistentVolumeClaim.volumeMode field, it can only bind to PersistentVolume with the matching volumeMode field.

### Binding Block Volumes

If a user requests a raw block volume by indicating this using the volumeMode field in the PersistentVolumeClaim spec, the binding rules differ slighty from previous releases that didn't consider this mode as part of the spec.
Listed is a table of possible combinations the user and admin might specify for requesting a raw block device. The table indicates if the volume will be bound or not given the combinations:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need this whole matrix. It can just be simplifeid to 'pvc.volumeMode' == 'pv.volumeMode'.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the matrix..personally @msau42

@zacharysarah
Copy link
Contributor

@erinboyd 👋 This PR has merged. Can you please open a new PR based on release-1.9 to address @msau42's feedback? ☝️ Thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants