Raw block volume GA (#19338)
* Raw block volume GA Feature BlockVolume reaches GA in 1.17 * Add volumeMode overview
This commit is contained in:
@@ -319,12 +319,24 @@ Currently, storage size is the only resource that can be set or requested. Futu
|
|||||||
|
|
||||||
### Volume Mode
|
### Volume Mode
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.13" state="beta" >}}
|
{{< feature-state for_k8s_version="v1.18" state="stable" >}}
|
||||||
|
|
||||||
Prior to Kubernetes 1.9, all volume plugins created a filesystem on the persistent volume.
|
Kubernetes supports two `volumeModes` of PersistentVolumes: `Filesystem` and `Block`.
|
||||||
Now, you can set the value of `volumeMode` to `block` to use a raw block device, or `filesystem`
|
|
||||||
to use a filesystem. `filesystem` is the default if the value is omitted. This is an optional API
|
`volumeMode` is an optional API parameter.
|
||||||
parameter.
|
`Filesystem` is the default mode used when `volumeMode` parameter is omitted.
|
||||||
|
|
||||||
|
A volume with `volumeMode: Filesystem` is *mounted* into Pods into a directory. If the volume
|
||||||
|
is backed by a block device and the device is empty, Kuberneretes creates a filesystem
|
||||||
|
on the device before mounting it for the first time.
|
||||||
|
|
||||||
|
You can set the value of `volumeMode` to `Block` to use a volume as a raw block device.
|
||||||
|
Such volume is presented into a Pod as a block device, without any filesystem on it.
|
||||||
|
This mode is useful to provide a Pod the fastest possible way to access a volume, without
|
||||||
|
any filesystem layer between the Pod and the volume. On the other hand, the application
|
||||||
|
running in the Pod must know how to handle a raw block device.
|
||||||
|
See [Raw Block Volume Support](docs/concepts/storage/persistent-volumes/#raw-block-volume-support)
|
||||||
|
for an example on how to use a volume with `volumeMode: Block` in a Pod.
|
||||||
|
|
||||||
### Access Modes
|
### Access Modes
|
||||||
|
|
||||||
@@ -559,24 +571,21 @@ spec:
|
|||||||
|
|
||||||
## Raw Block Volume Support
|
## Raw Block Volume Support
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.13" state="beta" >}}
|
{{< feature-state for_k8s_version="v1.18" state="stable" >}}
|
||||||
|
|
||||||
The following volume plugins support raw block volumes, including dynamic provisioning where
|
The following volume plugins support raw block volumes, including dynamic provisioning where
|
||||||
applicable:
|
applicable:
|
||||||
|
|
||||||
* AWSElasticBlockStore
|
* AWSElasticBlockStore
|
||||||
* AzureDisk
|
* AzureDisk
|
||||||
|
* CSI
|
||||||
* FC (Fibre Channel)
|
* FC (Fibre Channel)
|
||||||
* GCEPersistentDisk
|
* GCEPersistentDisk
|
||||||
* iSCSI
|
* iSCSI
|
||||||
* Local volume
|
* Local volume
|
||||||
|
* OpenStack Cinder
|
||||||
* RBD (Ceph Block Device)
|
* RBD (Ceph Block Device)
|
||||||
* VsphereVolume (alpha)
|
* VsphereVolume
|
||||||
|
|
||||||
{{< note >}}
|
|
||||||
Only FC and iSCSI volumes supported raw block volumes in Kubernetes 1.9.
|
|
||||||
Support for the additional plugins was added in 1.10.
|
|
||||||
{{< /note >}}
|
|
||||||
|
|
||||||
### Persistent Volumes using a Raw Block Volume
|
### Persistent Volumes using a Raw Block Volume
|
||||||
|
|
||||||
|
|||||||
@@ -1302,19 +1302,13 @@ persistent volume:
|
|||||||
|
|
||||||
#### CSI raw block volume support
|
#### CSI raw block volume support
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.14" state="beta" >}}
|
{{< feature-state for_k8s_version="v1.18" state="stable" >}}
|
||||||
|
|
||||||
Starting with version 1.11, CSI introduced support for raw block volumes, which
|
Vendors with external CSI drivers can implement raw block volumes support
|
||||||
relies on the raw block volume feature that was introduced in a previous version of
|
in Kubernetes workloads.
|
||||||
Kubernetes. This feature will make it possible for vendors with external CSI drivers to
|
|
||||||
implement raw block volumes support in Kubernetes workloads.
|
|
||||||
|
|
||||||
CSI block volume support is feature-gated, but enabled by default. The two
|
You can [setup your PV/PVC with raw block volume support](/docs/concepts/storage/persistent-volumes/#raw-block-volume-support)
|
||||||
feature gates which must be enabled for this feature are `BlockVolume` and
|
as usual, without any CSI specific changes.
|
||||||
`CSIBlockVolume`.
|
|
||||||
|
|
||||||
Learn how to
|
|
||||||
[setup your PV/PVC with raw block volume support](/docs/concepts/storage/persistent-volumes/#raw-block-volume-support).
|
|
||||||
|
|
||||||
#### CSI ephemeral volumes
|
#### CSI ephemeral volumes
|
||||||
|
|
||||||
|
|||||||
@@ -54,15 +54,11 @@ different Kubernetes components.
|
|||||||
| `APIResponseCompression` | `false` | Alpha | 1.7 | |
|
| `APIResponseCompression` | `false` | Alpha | 1.7 | |
|
||||||
| `AppArmor` | `true` | Beta | 1.4 | |
|
| `AppArmor` | `true` | Beta | 1.4 | |
|
||||||
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | |
|
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | |
|
||||||
| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 |
|
|
||||||
| `BlockVolume` | `true` | Beta | 1.13 | - |
|
|
||||||
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | |
|
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | |
|
||||||
| `CPUManager` | `false` | Alpha | 1.8 | 1.9 |
|
| `CPUManager` | `false` | Alpha | 1.8 | 1.9 |
|
||||||
| `CPUManager` | `true` | Beta | 1.10 | |
|
| `CPUManager` | `true` | Beta | 1.10 | |
|
||||||
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
|
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
|
||||||
| `CRIContainerLogRotation` | `true` | Beta| 1.11 | |
|
| `CRIContainerLogRotation` | `true` | Beta| 1.11 | |
|
||||||
| `CSIBlockVolume` | `false` | Alpha | 1.11 | 1.13 |
|
|
||||||
| `CSIBlockVolume` | `true` | Beta | 1.14 | |
|
|
||||||
| `CSIInlineVolume` | `false` | Alpha | 1.15 | 1.15 |
|
| `CSIInlineVolume` | `false` | Alpha | 1.15 | 1.15 |
|
||||||
| `CSIInlineVolume` | `true` | Beta | 1.16 | - |
|
| `CSIInlineVolume` | `true` | Beta | 1.16 | - |
|
||||||
| `CSIMigration` | `false` | Alpha | 1.14 | 1.16 |
|
| `CSIMigration` | `false` | Alpha | 1.14 | 1.16 |
|
||||||
@@ -174,6 +170,12 @@ different Kubernetes components.
|
|||||||
| `AffinityInAnnotations` | - | Deprecated | 1.8 | - |
|
| `AffinityInAnnotations` | - | Deprecated | 1.8 | - |
|
||||||
| `AllowExtTrafficLocalEndpoints` | `false` | Beta | 1.4 | 1.6 |
|
| `AllowExtTrafficLocalEndpoints` | `false` | Beta | 1.4 | 1.6 |
|
||||||
| `AllowExtTrafficLocalEndpoints` | `true` | GA | 1.7 | - |
|
| `AllowExtTrafficLocalEndpoints` | `true` | GA | 1.7 | - |
|
||||||
|
| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 |
|
||||||
|
| `BlockVolume` | `true` | Beta | 1.13 | 1.17 |
|
||||||
|
| `BlockVolume` | `true` | GA | 1.18 | - |
|
||||||
|
| `CSIBlockVolume` | `false` | Alpha | 1.11 | 1.13 |
|
||||||
|
| `CSIBlockVolume` | `true` | Beta | 1.14 | 1.17 |
|
||||||
|
| `CSIBlockVolume` | `true` | GA | 1.18 | - |
|
||||||
| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 |
|
| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 |
|
||||||
| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 |
|
| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 |
|
||||||
| `CSIDriverRegistry` | `true` | GA | 1.18 | |
|
| `CSIDriverRegistry` | `true` | GA | 1.18 | |
|
||||||
|
|||||||
Reference in New Issue
Block a user