Skip to content

Commit b33c318

Browse files
authored
Merge pull request #42302 from mengjiao-liu/update-in-tree-volume-plugins-status
Update In-tree storage driver status
2 parents 057d5de + 27ed8f3 commit b33c318

File tree

4 files changed

+40
-193
lines changed

4 files changed

+40
-193
lines changed

content/en/docs/concepts/storage/persistent-volumes.md

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ another claim because the previous claimant's data remains on the volume.
185185
An administrator can manually reclaim the volume with the following steps.
186186

187187
1. Delete the PersistentVolume. The associated storage asset in external infrastructure
188-
(such as an AWS EBS, GCE PD, Azure Disk, or Cinder volume) still exists after the PV is deleted.
188+
(such as an AWS EBS or GCE PD volume) still exists after the PV is deleted.
189189
1. Manually clean up the data on the associated storage asset accordingly.
190190
1. Manually delete the associated storage asset.
191191

@@ -196,8 +196,7 @@ the same storage asset definition.
196196

197197
For volume plugins that support the `Delete` reclaim policy, deletion removes
198198
both the PersistentVolume object from Kubernetes, as well as the associated
199-
storage asset in the external infrastructure, such as an AWS EBS, GCE PD,
200-
Azure Disk, or Cinder volume. Volumes that were dynamically provisioned
199+
storage asset in the external infrastructure, such as an AWS EBS or GCE PD volume. Volumes that were dynamically provisioned
201200
inherit the [reclaim policy of their StorageClass](#reclaim-policy), which
202201
defaults to `Delete`. The administrator should configure the StorageClass
203202
according to users' expectations; otherwise, the PV must be edited or
@@ -368,15 +367,12 @@ to `Retain`, including cases where you are reusing an existing PV.
368367
Support for expanding PersistentVolumeClaims (PVCs) is enabled by default. You can expand
369368
the following types of volumes:
370369

371-
* azureDisk
372-
* azureFile
373-
* awsElasticBlockStore
374-
* cinder (deprecated)
370+
* azureFile (deprecated)
375371
* {{< glossary_tooltip text="csi" term_id="csi" >}}
376372
* flexVolume (deprecated)
377-
* gcePersistentDisk
373+
* gcePersistentDisk (deprecated)
378374
* rbd
379-
* portworxVolume
375+
* portworxVolume (deprecated)
380376

381377
You can only expand a PVC if its storage class's `allowVolumeExpansion` field is set to true.
382378

@@ -520,14 +516,8 @@ PersistentVolume types are implemented as plugins. Kubernetes currently supports
520516
The following types of PersistentVolume are deprecated.
521517
This means that support is still available but will be removed in a future Kubernetes release.
522518

523-
* [`awsElasticBlockStore`](/docs/concepts/storage/volumes/#awselasticblockstore) - AWS Elastic Block Store (EBS)
524-
(**deprecated** in v1.17)
525-
* [`azureDisk`](/docs/concepts/storage/volumes/#azuredisk) - Azure Disk
526-
(**deprecated** in v1.19)
527519
* [`azureFile`](/docs/concepts/storage/volumes/#azurefile) - Azure File
528520
(**deprecated** in v1.21)
529-
* [`cinder`](/docs/concepts/storage/volumes/#cinder) - Cinder (OpenStack block storage)
530-
(**deprecated** in v1.18)
531521
* [`flexVolume`](/docs/concepts/storage/volumes/#flexvolume) - FlexVolume
532522
(**deprecated** in v1.23)
533523
* [`gcePersistentDisk`](/docs/concepts/storage/volumes/#gcepersistentdisk) - GCE Persistent Disk
@@ -539,6 +529,12 @@ This means that support is still available but will be removed in a future Kuber
539529

540530
Older versions of Kubernetes also supported the following in-tree PersistentVolume types:
541531

532+
* [`awsElasticBlockStore`](/docs/concepts/storage/volumes/#awselasticblockstore) - AWS Elastic Block Store (EBS)
533+
(**not available** in v1.27)
534+
* [`azureDisk`](/docs/concepts/storage/volumes/#azuredisk) - Azure Disk
535+
(**not available** in v1.27)
536+
* [`cinder`](/docs/concepts/storage/volumes/#cinder) - Cinder (OpenStack block storage)
537+
(**not available** in v1.26)
542538
* `photonPersistentDisk` - Photon controller persistent disk.
543539
(**not available** starting v1.15)
544540
* [`scaleIO`](/docs/concepts/storage/volumes/#scaleio) - ScaleIO volume
@@ -670,11 +666,8 @@ are specified as ReadWriteOncePod, the volume is constrained and can be mounted
670666

671667
| Volume Plugin | ReadWriteOnce | ReadOnlyMany | ReadWriteMany | ReadWriteOncePod |
672668
| :--- | :---: | :---: | :---: | - |
673-
| AWSElasticBlockStore | &#x2713; | - | - | - |
674669
| AzureFile | &#x2713; | &#x2713; | &#x2713; | - |
675-
| AzureDisk | &#x2713; | - | - | - |
676670
| CephFS | &#x2713; | &#x2713; | &#x2713; | - |
677-
| Cinder | &#x2713; | - | ([if multi-attach volumes are available](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/features.md#multi-attach-volumes)) | - |
678671
| CSI | depends on the driver | depends on the driver | depends on the driver | depends on the driver |
679672
| FC | &#x2713; | &#x2713; | - | - |
680673
| FlexVolume | &#x2713; | &#x2713; | depends on the driver | - |
@@ -706,11 +699,9 @@ Current reclaim policies are:
706699

707700
* Retain -- manual reclamation
708701
* Recycle -- basic scrub (`rm -rf /thevolume/*`)
709-
* Delete -- associated storage asset such as AWS EBS, GCE PD, Azure Disk,
710-
or OpenStack Cinder volume is deleted
702+
* Delete -- associated storage asset such as AWS EBS or GCE PD volume is deleted
711703

712-
Currently, only NFS and HostPath support recycling. AWS EBS, GCE PD, Azure Disk,
713-
and Cinder volumes support deletion.
704+
Currently, only NFS and HostPath support recycling. AWS EBS and GCE PD volumes support deletion.
714705

715706
### Mount Options
716707

@@ -723,11 +714,8 @@ Not all Persistent Volume types support mount options.
723714

724715
The following volume types support mount options:
725716

726-
* `awsElasticBlockStore`
727-
* `azureDisk`
728717
* `azureFile`
729718
* `cephfs`
730-
* `cinder` (**deprecated** in v1.18)
731719
* `gcePersistentDisk`
732720
* `iscsi`
733721
* `nfs`
@@ -744,10 +732,8 @@ it will become fully deprecated in a future Kubernetes release.
744732

745733
{{< note >}}
746734
For most volume types, you do not need to set this field. It is automatically
747-
populated for [AWS EBS](/docs/concepts/storage/volumes/#awselasticblockstore),
748-
[GCE PD](/docs/concepts/storage/volumes/#gcepersistentdisk) and
749-
[Azure Disk](/docs/concepts/storage/volumes/#azuredisk) volume block types. You
750-
need to explicitly set this for [local](/docs/concepts/storage/volumes/#local) volumes.
735+
populated for [GCE PD](/docs/concepts/storage/volumes/#gcepersistentdisk) volume block types.
736+
You need to explicitly set this for [local](/docs/concepts/storage/volumes/#local) volumes.
751737
{{< /note >}}
752738

753739
A PV can specify node affinity to define constraints that limit what nodes this
@@ -944,14 +930,11 @@ network-attached storage. See
944930
The following volume plugins support raw block volumes, including dynamic provisioning where
945931
applicable:
946932

947-
* AWSElasticBlockStore
948-
* AzureDisk
949933
* CSI
950934
* FC (Fibre Channel)
951935
* GCEPersistentDisk
952936
* iSCSI
953937
* Local volume
954-
* OpenStack Cinder
955938
* RBD (Ceph Block Device)
956939
* VsphereVolume
957940

content/en/docs/concepts/storage/storage-classes.md

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,8 @@ for provisioning PVs. This field must be specified.
7575

7676
| Volume Plugin | Internal Provisioner | Config Example |
7777
| :------------------- | :------------------: | :-----------------------------------: |
78-
| AWSElasticBlockStore | &#x2713; | [AWS EBS](#aws-ebs) |
7978
| AzureFile | &#x2713; | [Azure File](#azure-file) |
80-
| AzureDisk | &#x2713; | [Azure Disk](#azure-disk) |
8179
| CephFS | - | - |
82-
| Cinder | &#x2713; | [OpenStack Cinder](#openstack-cinder) |
8380
| FC | - | - |
8481
| FlexVolume | - | - |
8582
| GCEPersistentDisk | &#x2713; | [GCE PD](#gce-pd) |
@@ -130,11 +127,8 @@ StorageClass has the field `allowVolumeExpansion` set to true.
130127
| Volume type | Required Kubernetes version |
131128
| :------------------- | :-------------------------- |
132129
| gcePersistentDisk | 1.11 |
133-
| awsElasticBlockStore | 1.11 |
134-
| Cinder | 1.11 |
135130
| rbd | 1.11 |
136131
| Azure File | 1.11 |
137-
| Azure Disk | 1.11 |
138132
| Portworx | 1.11 |
139133
| FlexVolume | 1.13 |
140134
| CSI | 1.14 (alpha), 1.16 (beta) |
@@ -178,9 +172,7 @@ and [taints and tolerations](/docs/concepts/scheduling-eviction/taint-and-tolera
178172

179173
The following plugins support `WaitForFirstConsumer` with dynamic provisioning:
180174

181-
- [AWSElasticBlockStore](#aws-ebs)
182175
- [GCEPersistentDisk](#gce-pd)
183-
- [AzureDisk](#azure-disk)
184176

185177
The following plugins support `WaitForFirstConsumer` with pre-created PersistentVolume binding:
186178

@@ -377,27 +369,6 @@ Here are some examples:
377369
- [NFS Ganesha server and external provisioner](https://github.com/kubernetes-sigs/nfs-ganesha-server-and-external-provisioner)
378370
- [NFS subdir external provisioner](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner)
379371

380-
### OpenStack Cinder
381-
382-
```yaml
383-
apiVersion: storage.k8s.io/v1
384-
kind: StorageClass
385-
metadata:
386-
name: gold
387-
provisioner: kubernetes.io/cinder
388-
parameters:
389-
availability: nova
390-
```
391-
392-
- `availability`: Availability Zone. If not specified, volumes are generally
393-
round-robin-ed across all active zones where Kubernetes cluster has a node.
394-
395-
{{< note >}}
396-
{{< feature-state state="deprecated" for_k8s_version="v1.11" >}}
397-
This internal provisioner of OpenStack is deprecated. Please use
398-
[the external cloud provider for OpenStack](https://github.com/kubernetes/cloud-provider-openstack).
399-
{{< /note >}}
400-
401372
### vSphere
402373

403374
There are two types of provisioners for vSphere storage classes:

content/en/docs/concepts/storage/volumes.md

Lines changed: 25 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -62,102 +62,31 @@ a different volume.
6262

6363
Kubernetes supports several types of volumes.
6464

65-
### awsElasticBlockStore (deprecated) {#awselasticblockstore}
65+
### awsElasticBlockStore (removed) {#awselasticblockstore}
6666

67-
{{< feature-state for_k8s_version="v1.17" state="deprecated" >}}
68-
69-
An `awsElasticBlockStore` volume mounts an Amazon Web Services (AWS)
70-
[EBS volume](https://aws.amazon.com/ebs/) into your pod. Unlike
71-
`emptyDir`, which is erased when a pod is removed, the contents of an EBS
72-
volume are persisted and the volume is unmounted. This means that an
73-
EBS volume can be pre-populated with data, and that data can be shared between pods.
74-
75-
{{< note >}}
76-
You must create an EBS volume by using `aws ec2 create-volume` or the AWS API before you can use it.
77-
{{< /note >}}
78-
79-
There are some restrictions when using an `awsElasticBlockStore` volume:
80-
81-
* the nodes on which pods are running must be AWS EC2 instances
82-
* those instances need to be in the same region and availability zone as the EBS volume
83-
* EBS only supports a single EC2 instance mounting a volume
84-
85-
#### Creating an AWS EBS volume
86-
87-
Before you can use an EBS volume with a pod, you need to create it.
88-
89-
```shell
90-
aws ec2 create-volume --availability-zone=eu-west-1a --size=10 --volume-type=gp2
91-
```
92-
93-
Make sure the zone matches the zone you brought up your cluster in. Check that the size and EBS volume
94-
type are suitable for your use.
95-
96-
#### AWS EBS configuration example
97-
98-
```yaml
99-
apiVersion: v1
100-
kind: Pod
101-
metadata:
102-
name: test-ebs
103-
spec:
104-
containers:
105-
- image: registry.k8s.io/test-webserver
106-
name: test-container
107-
volumeMounts:
108-
- mountPath: /test-ebs
109-
name: test-volume
110-
volumes:
111-
- name: test-volume
112-
# This AWS EBS volume must already exist.
113-
awsElasticBlockStore:
114-
volumeID: "<volume id>"
115-
fsType: ext4
116-
```
117-
118-
If the EBS volume is partitioned, you can supply the optional field `partition: "<partition number>"` to specify which partition to mount on.
119-
120-
#### AWS EBS CSI migration
121-
122-
{{< feature-state for_k8s_version="v1.25" state="stable" >}}
123-
124-
The `CSIMigration` feature for `awsElasticBlockStore`, when enabled, redirects
125-
all plugin operations from the existing in-tree plugin to the `ebs.csi.aws.com` Container
126-
Storage Interface (CSI) driver. In order to use this feature, the [AWS EBS CSI
127-
driver](https://github.com/kubernetes-sigs/aws-ebs-csi-driver)
128-
must be installed on the cluster.
129-
130-
#### AWS EBS CSI migration complete
131-
132-
{{< feature-state for_k8s_version="v1.17" state="alpha" >}}
133-
134-
To disable the `awsElasticBlockStore` storage plugin from being loaded by the controller manager
135-
and the kubelet, set the `InTreePluginAWSUnregister` flag to `true`.
136-
137-
### azureDisk (deprecated) {#azuredisk}
67+
<!-- maintenance note: OK to remove all mention of awsElasticBlockStore once the v1.27 release of
68+
Kubernetes has gone out of support -->
13869

139-
{{< feature-state for_k8s_version="v1.19" state="deprecated" >}}
70+
Kubernetes {{< skew currentVersion >}} does not include a `awsElasticBlockStore` volume type.
14071

141-
The `azureDisk` volume type mounts a Microsoft Azure [Data Disk](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers) into a pod.
72+
The AWSElasticBlockStore in-tree storage driver was deprecated in the Kubernetes v1.19 release
73+
and then removed entirely in the v1.27 release.
14274

143-
For more details, see the [`azureDisk` volume plugin](https://github.com/kubernetes/examples/tree/master/staging/volumes/azure_disk/README.md).
75+
The Kubernetes project suggests that you use the [AWS EBS](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) third party
76+
storage driver instead.
14477

145-
#### azureDisk CSI migration
78+
### azureDisk (removed) {#azuredisk}
14679

147-
{{< feature-state for_k8s_version="v1.24" state="stable" >}}
80+
<!-- maintenance note: OK to remove all mention of azureDisk once the v1.27 release of
81+
Kubernetes has gone out of support -->
14882

149-
The `CSIMigration` feature for `azureDisk`, when enabled, redirects all plugin operations
150-
from the existing in-tree plugin to the `disk.csi.azure.com` Container
151-
Storage Interface (CSI) Driver. In order to use this feature, the
152-
[Azure Disk CSI Driver](https://github.com/kubernetes-sigs/azuredisk-csi-driver)
153-
must be installed on the cluster.
83+
Kubernetes {{< skew currentVersion >}} does not include a `azureDisk` volume type.
15484

155-
#### azureDisk CSI migration complete
85+
The AzureDisk in-tree storage driver was deprecated in the Kubernetes v1.19 release
86+
and then removed entirely in the v1.27 release.
15687

157-
{{< feature-state for_k8s_version="v1.21" state="alpha" >}}
158-
159-
To disable the `azureDisk` storage plugin from being loaded by the controller manager
160-
and the kubelet, set the `InTreePluginAzureDiskUnregister` flag to `true`.
88+
The Kubernetes project suggests that you use the [Azure Disk](https://github.com/kubernetes-sigs/azuredisk-csi-driver) third party
89+
storage driver instead.
16190

16291
### azureFile (deprecated) {#azurefile}
16392

@@ -204,51 +133,19 @@ You must have your own Ceph server running with the share exported before you ca
204133

205134
See the [CephFS example](https://github.com/kubernetes/examples/tree/master/volumes/cephfs/) for more details.
206135

207-
### cinder (deprecated) {#cinder}
208-
209-
{{< feature-state for_k8s_version="v1.18" state="deprecated" >}}
210-
211-
{{< note >}}
212-
Kubernetes must be configured with the OpenStack cloud provider.
213-
{{< /note >}}
214-
215-
The `cinder` volume type is used to mount the OpenStack Cinder volume into your pod.
216-
217-
#### Cinder volume configuration example
218-
219-
```yaml
220-
apiVersion: v1
221-
kind: Pod
222-
metadata:
223-
name: test-cinder
224-
spec:
225-
containers:
226-
- image: registry.k8s.io/test-webserver
227-
name: test-cinder-container
228-
volumeMounts:
229-
- mountPath: /test-cinder
230-
name: test-volume
231-
volumes:
232-
- name: test-volume
233-
# This OpenStack volume must already exist.
234-
cinder:
235-
volumeID: "<volume id>"
236-
fsType: ext4
237-
```
136+
### cinder (removed) {#cinder}
238137

239-
#### OpenStack CSI migration
138+
<!-- maintenance note: OK to remove all mention of cinder once the v1.26 release of
139+
Kubernetes has gone out of support -->
240140

241-
{{< feature-state for_k8s_version="v1.24" state="stable" >}}
141+
Kubernetes {{< skew currentVersion >}} does not include a `cinder` volume type.
242142

243-
The `CSIMigration` feature for Cinder is enabled by default since Kubernetes 1.21.
244-
It redirects all plugin operations from the existing in-tree plugin to the
245-
`cinder.csi.openstack.org` Container Storage Interface (CSI) Driver.
246-
[OpenStack Cinder CSI Driver](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md)
247-
must be installed on the cluster.
143+
The OpenStack Cinder in-tree storage driver was deprecated in the Kubernetes v1.11 release
144+
and then removed entirely in the v1.26 release.
248145

249-
To disable the in-tree Cinder plugin from being loaded by the controller manager
250-
and the kubelet, you can enable the `InTreePluginOpenStackUnregister`
251-
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/).
146+
The Kubernetes project suggests that you use the
147+
[OpenStack Cinder](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md)
148+
third party storage driver instead.
252149

253150
### configMap
254151

@@ -1245,8 +1142,6 @@ are listed in [Types of Volumes](#volume-types).
12451142

12461143
The following in-tree plugins support persistent storage on Windows nodes:
12471144

1248-
* [`awsElasticBlockStore`](#awselasticblockstore)
1249-
* [`azureDisk`](#azuredisk)
12501145
* [`azureFile`](#azurefile)
12511146
* [`gcePersistentDisk`](#gcepersistentdisk)
12521147
* [`vsphereVolume`](#vspherevolume)

content/en/docs/concepts/storage/windows-storage.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ The following broad classes of Kubernetes volume plugins are supported on Window
6565

6666
The following in-tree plugins support persistent storage on Windows nodes:
6767

68-
* [`awsElasticBlockStore`](/docs/concepts/storage/volumes/#awselasticblockstore)
69-
* [`azureDisk`](/docs/concepts/storage/volumes/#azuredisk)
7068
* [`azureFile`](/docs/concepts/storage/volumes/#azurefile)
7169
* [`gcePersistentDisk`](/docs/concepts/storage/volumes/#gcepersistentdisk)
7270
* [`vsphereVolume`](/docs/concepts/storage/volumes/#vspherevolume)

0 commit comments

Comments
 (0)