Skip to content

Commit 976ead0

Browse files
authored
Update In-tree storage driver status (#42415)
* Update In-tree storage driver status * Update In-tree storage driver `gcePersistentDisk` status to removed * Remove GCEPersistentDisk volume info from the storage-classes page
1 parent d5bd665 commit 976ead0

File tree

4 files changed

+15
-199
lines changed

4 files changed

+15
-199
lines changed

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

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ and the volume is considered "released". But it is not yet available for
184184
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

187-
1. Delete the PersistentVolume. The associated storage asset in external infrastructure
188-
(such as an AWS EBS or GCE PD volume) still exists after the PV is deleted.
187+
1. Delete the PersistentVolume. The associated storage asset in external infrastructure
188+
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,7 +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 or GCE PD volume. Volumes that were dynamically provisioned
199+
storage asset in the external infrastructure. Volumes that were dynamically provisioned
200200
inherit the [reclaim policy of their StorageClass](#reclaim-policy), which
201201
defaults to `Delete`. The administrator should configure the StorageClass
202202
according to users' expectations; otherwise, the PV must be edited or
@@ -370,7 +370,6 @@ the following types of volumes:
370370
* azureFile (deprecated)
371371
* {{< glossary_tooltip text="csi" term_id="csi" >}}
372372
* flexVolume (deprecated)
373-
* gcePersistentDisk (deprecated)
374373
* rbd (deprecated)
375374
* portworxVolume (deprecated)
376375

@@ -438,11 +437,6 @@ Similar to other volume types - FlexVolume volumes can also be expanded when in-
438437
FlexVolume resize is possible only when the underlying driver supports resize.
439438
{{< /note >}}
440439

441-
{{< note >}}
442-
Expanding EBS volumes is a time-consuming operation.
443-
Also, there is a per-volume quota of one modification every 6 hours.
444-
{{< /note >}}
445-
446440
#### Recovering from Failure when Expanding Volumes
447441

448442
If a user specifies a new size that is too big to be satisfied by underlying
@@ -518,8 +512,6 @@ This means that support is still available but will be removed in a future Kuber
518512
(**deprecated** in v1.21)
519513
* [`flexVolume`](/docs/concepts/storage/volumes/#flexvolume) - FlexVolume
520514
(**deprecated** in v1.23)
521-
* [`gcePersistentDisk`](/docs/concepts/storage/volumes/#gcepersistentdisk) - GCE Persistent Disk
522-
(**deprecated** in v1.17)
523515
* [`portworxVolume`](/docs/concepts/storage/volumes/#portworxvolume) - Portworx volume
524516
(**deprecated** in v1.25)
525517
* [`vsphereVolume`](/docs/concepts/storage/volumes/#vspherevolume) - vSphere VMDK volume
@@ -663,8 +655,7 @@ are specified as ReadWriteOncePod, the volume is constrained and can be mounted
663655
{{< /note >}}
664656

665657
> __Important!__ A volume can only be mounted using one access mode at a time,
666-
> even if it supports many. For example, a GCEPersistentDisk can be mounted as
667-
> ReadWriteOnce by a single node or ReadOnlyMany by many nodes, but not at the same time.
658+
> even if it supports many.
668659

669660
| Volume Plugin | ReadWriteOnce | ReadOnlyMany | ReadWriteMany | ReadWriteOncePod |
670661
| :--- | :---: | :---: | :---: | - |
@@ -673,8 +664,6 @@ are specified as ReadWriteOncePod, the volume is constrained and can be mounted
673664
| CSI | depends on the driver | depends on the driver | depends on the driver | depends on the driver |
674665
| FC | &#x2713; | &#x2713; | - | - |
675666
| FlexVolume | &#x2713; | &#x2713; | depends on the driver | - |
676-
| GCEPersistentDisk | &#x2713; | &#x2713; | - | - |
677-
| Glusterfs | &#x2713; | &#x2713; | &#x2713; | - |
678667
| HostPath | &#x2713; | - | - | - |
679668
| iSCSI | &#x2713; | &#x2713; | - | - |
680669
| NFS | &#x2713; | &#x2713; | &#x2713; | - |
@@ -701,9 +690,9 @@ Current reclaim policies are:
701690

702691
* Retain -- manual reclamation
703692
* Recycle -- basic scrub (`rm -rf /thevolume/*`)
704-
* Delete -- associated storage asset such as AWS EBS or GCE PD volume is deleted
693+
* Delete -- associated storage asset
705694

706-
Currently, only NFS and HostPath support recycling. AWS EBS and GCE PD volumes support deletion.
695+
For Kubernetes {{< skew currentVersion >}}, only `nfs` and `hostPath` volume types support recycling.
707696

708697
### Mount Options
709698

@@ -719,7 +708,6 @@ The following volume types support mount options:
719708
* `azureFile`
720709
* `cephfs` (**deprecated** in v1.28)
721710
* `cinder` (**deprecated** in v1.18)
722-
* `gcePersistentDisk` (**deprecated** in v1.28)
723711
* `iscsi`
724712
* `nfs`
725713
* `rbd` (**deprecated** in v1.28)
@@ -734,8 +722,7 @@ it will become fully deprecated in a future Kubernetes release.
734722
### Node Affinity
735723

736724
{{< note >}}
737-
For most volume types, you do not need to set this field. It is automatically
738-
populated for [GCE PD](/docs/concepts/storage/volumes/#gcepersistentdisk) volume block types.
725+
For most volume types, you do not need to set this field.
739726
You need to explicitly set this for [local](/docs/concepts/storage/volumes/#local) volumes.
740727
{{< /note >}}
741728

@@ -956,7 +943,6 @@ applicable:
956943

957944
* CSI
958945
* FC (Fibre Channel)
959-
* GCEPersistentDisk (deprecated)
960946
* iSCSI
961947
* Local volume
962948
* OpenStack Cinder

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

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ for provisioning PVs. This field must be specified.
7878
| CephFS | - | - |
7979
| FC | - | - |
8080
| FlexVolume | - | - |
81-
| GCEPersistentDisk | &#x2713; | [GCE PD](#gce-pd) |
8281
| iSCSI | - | - |
8382
| NFS | - | [NFS](#nfs) |
8483
| RBD | &#x2713; | [Ceph RBD](#ceph-rbd) |
@@ -125,7 +124,6 @@ StorageClass has the field `allowVolumeExpansion` set to true.
125124

126125
| Volume type | Required Kubernetes version |
127126
| :------------------- | :-------------------------- |
128-
| gcePersistentDisk | 1.11 |
129127
| rbd | 1.11 |
130128
| Azure File | 1.11 |
131129
| Portworx | 1.11 |
@@ -169,13 +167,7 @@ requirements](/docs/concepts/configuration/manage-resources-containers/),
169167
anti-affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity),
170168
and [taints and tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration).
171169

172-
The following plugins support `WaitForFirstConsumer` with dynamic provisioning:
173-
174-
- [GCEPersistentDisk](#gce-pd)
175-
176170
The following plugins support `WaitForFirstConsumer` with pre-created PersistentVolume binding:
177-
178-
- All of the above
179171
- [Local](#local)
180172

181173
[CSI volumes](/docs/concepts/storage/volumes/#csi) are also supported with dynamic provisioning
@@ -294,55 +286,6 @@ parameters:
294286
[allowedTopologies](#allowed-topologies)
295287
{{< /note >}}
296288

297-
### GCE PD
298-
299-
```yaml
300-
apiVersion: storage.k8s.io/v1
301-
kind: StorageClass
302-
metadata:
303-
name: slow
304-
provisioner: kubernetes.io/gce-pd
305-
parameters:
306-
type: pd-standard
307-
fstype: ext4
308-
replication-type: none
309-
```
310-
311-
- `type`: `pd-standard` or `pd-ssd`. Default: `pd-standard`
312-
- `zone` (Deprecated): GCE zone. If neither `zone` nor `zones` is specified, volumes are
313-
generally round-robin-ed across all active zones where Kubernetes cluster has
314-
a node. `zone` and `zones` parameters must not be used at the same time.
315-
- `zones` (Deprecated): A comma separated list of GCE zone(s). If neither `zone` nor `zones`
316-
is specified, volumes are generally round-robin-ed across all active zones
317-
where Kubernetes cluster has a node. `zone` and `zones` parameters must not
318-
be used at the same time.
319-
- `fstype`: `ext4` or `xfs`. Default: `ext4`. The defined filesystem type must be supported by the host operating system.
320-
321-
- `replication-type`: `none` or `regional-pd`. Default: `none`.
322-
323-
If `replication-type` is set to `none`, a regular (zonal) PD will be provisioned.
324-
325-
If `replication-type` is set to `regional-pd`, a
326-
[Regional Persistent Disk](https://cloud.google.com/compute/docs/disks/#repds)
327-
will be provisioned. It's highly recommended to have
328-
`volumeBindingMode: WaitForFirstConsumer` set, in which case when you create
329-
a Pod that consumes a PersistentVolumeClaim which uses this StorageClass, a
330-
Regional Persistent Disk is provisioned with two zones. One zone is the same
331-
as the zone that the Pod is scheduled in. The other zone is randomly picked
332-
from the zones available to the cluster. Disk zones can be further constrained
333-
using `allowedTopologies`.
334-
335-
{{< note >}}
336-
`zone` and `zones` parameters are deprecated and replaced with
337-
[allowedTopologies](#allowed-topologies). When
338-
[GCE CSI Migration](/docs/concepts/storage/volumes/#gce-csi-migration) is
339-
enabled, a GCE PD volume can be provisioned in a topology that does not match
340-
any nodes, but any pod trying to use that volume will fail to schedule. With
341-
legacy pre-migration GCE PD, in this case an error will be produced
342-
instead at provisioning time. GCE CSI Migration is enabled by default beginning
343-
from the Kubernetes 1.23 release.
344-
{{< /note >}}
345-
346289
### NFS
347290

348291
```yaml

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

Lines changed: 8 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -295,127 +295,15 @@ beforehand so that Kubernetes hosts can access them.
295295
See the [fibre channel example](https://github.com/kubernetes/examples/tree/master/staging/volumes/fibre_channel)
296296
for more details.
297297

298-
### gcePersistentDisk (deprecated) {#gcepersistentdisk}
298+
### gcePersistentDisk (removed) {#gcepersistentdisk}
299299

300-
{{< feature-state for_k8s_version="v1.17" state="deprecated" >}}
300+
Kubernetes {{< skew currentVersion >}} does not include a `gcePersistentDisk` volume type.
301301

302-
A `gcePersistentDisk` volume mounts a Google Compute Engine (GCE)
303-
[persistent disk](https://cloud.google.com/compute/docs/disks) (PD) into your Pod.
304-
Unlike `emptyDir`, which is erased when a pod is removed, the contents of a PD are
305-
preserved and the volume is merely unmounted. This means that a PD can be
306-
pre-populated with data, and that data can be shared between pods.
302+
The `gcePersistentDisk` in-tree storage driver was deprecated in the Kubernetes v1.17 release
303+
and then removed entirely in the v1.28 release.
307304

308-
{{< note >}}
309-
You must create a PD using `gcloud` or the GCE API or UI before you can use it.
310-
{{< /note >}}
311-
312-
There are some restrictions when using a `gcePersistentDisk`:
313-
314-
* the nodes on which Pods are running must be GCE VMs
315-
* those VMs need to be in the same GCE project and zone as the persistent disk
316-
317-
One feature of GCE persistent disk is concurrent read-only access to a persistent disk.
318-
A `gcePersistentDisk` volume permits multiple consumers to simultaneously
319-
mount a persistent disk as read-only. This means that you can pre-populate a PD with your dataset
320-
and then serve it in parallel from as many Pods as you need. Unfortunately,
321-
PDs can only be mounted by a single consumer in read-write mode. Simultaneous
322-
writers are not allowed.
323-
324-
Using a GCE persistent disk with a Pod controlled by a ReplicaSet will fail unless
325-
the PD is read-only or the replica count is 0 or 1.
326-
327-
#### Creating a GCE persistent disk {#gce-create-persistent-disk}
328-
329-
Before you can use a GCE persistent disk with a Pod, you need to create it.
330-
331-
```shell
332-
gcloud compute disks create --size=500GB --zone=us-central1-a my-data-disk
333-
```
334-
335-
#### GCE persistent disk configuration example
336-
337-
```yaml
338-
apiVersion: v1
339-
kind: Pod
340-
metadata:
341-
name: test-pd
342-
spec:
343-
containers:
344-
- image: registry.k8s.io/test-webserver
345-
name: test-container
346-
volumeMounts:
347-
- mountPath: /test-pd
348-
name: test-volume
349-
volumes:
350-
- name: test-volume
351-
# This GCE PD must already exist.
352-
gcePersistentDisk:
353-
pdName: my-data-disk
354-
fsType: ext4
355-
```
356-
357-
#### Regional persistent disks
358-
359-
The [Regional persistent disks](https://cloud.google.com/compute/docs/disks/#repds)
360-
feature allows the creation of persistent disks that are available in two zones
361-
within the same region. In order to use this feature, the volume must be provisioned
362-
as a PersistentVolume; referencing the volume directly from a pod is not supported.
363-
364-
#### Manually provisioning a Regional PD PersistentVolume
365-
366-
Dynamic provisioning is possible using a
367-
[StorageClass for GCE PD](/docs/concepts/storage/storage-classes/#gce-pd).
368-
Before creating a PersistentVolume, you must create the persistent disk:
369-
370-
```shell
371-
gcloud compute disks create --size=500GB my-data-disk
372-
--region us-central1
373-
--replica-zones us-central1-a,us-central1-b
374-
```
375-
376-
#### Regional persistent disk configuration example
377-
378-
```yaml
379-
apiVersion: v1
380-
kind: PersistentVolume
381-
metadata:
382-
name: test-volume
383-
spec:
384-
capacity:
385-
storage: 400Gi
386-
accessModes:
387-
- ReadWriteOnce
388-
gcePersistentDisk:
389-
pdName: my-data-disk
390-
fsType: ext4
391-
nodeAffinity:
392-
required:
393-
nodeSelectorTerms:
394-
- matchExpressions:
395-
# failure-domain.beta.kubernetes.io/zone should be used prior to 1.21
396-
- key: topology.kubernetes.io/zone
397-
operator: In
398-
values:
399-
- us-central1-a
400-
- us-central1-b
401-
```
402-
403-
#### GCE CSI migration
404-
405-
{{< feature-state for_k8s_version="v1.25" state="stable" >}}
406-
407-
The `CSIMigration` feature for GCE PD, when enabled, redirects all plugin operations
408-
from the existing in-tree plugin to the `pd.csi.storage.gke.io` Container
409-
Storage Interface (CSI) Driver. In order to use this feature, the [GCE PD CSI
410-
Driver](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver)
411-
must be installed on the cluster.
412-
413-
#### GCE CSI migration complete
414-
415-
{{< feature-state for_k8s_version="v1.21" state="alpha" >}}
416-
417-
To disable the `gcePersistentDisk` storage plugin from being loaded by the controller manager
418-
and the kubelet, set the `InTreePluginGCEUnregister` flag to `true`.
305+
The Kubernetes project suggests that you use the [Google Compute Engine Persistent Disk CSI](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver)
306+
third party storage driver instead.
419307

420308
### gitRepo (deprecated) {#gitrepo}
421309

@@ -704,8 +592,8 @@ for an example of mounting NFS volumes with PersistentVolumes.
704592

705593
A `persistentVolumeClaim` volume is used to mount a
706594
[PersistentVolume](/docs/concepts/storage/persistent-volumes/) into a Pod. PersistentVolumeClaims
707-
are a way for users to "claim" durable storage (such as a GCE PersistentDisk or an
708-
iSCSI volume) without knowing the details of the particular cloud environment.
595+
are a way for users to "claim" durable storage (such as an iSCSI volume)
596+
without knowing the details of the particular cloud environment.
709597

710598
See the information about [PersistentVolumes](/docs/concepts/storage/persistent-volumes/) for more
711599
details.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,4 @@ The following broad classes of Kubernetes volume plugins are supported on Window
6666
The following in-tree plugins support persistent storage on Windows nodes:
6767

6868
* [`azureFile`](/docs/concepts/storage/volumes/#azurefile)
69-
* [`gcePersistentDisk`](/docs/concepts/storage/volumes/#gcepersistentdisk)
7069
* [`vsphereVolume`](/docs/concepts/storage/volumes/#vspherevolume)

0 commit comments

Comments
 (0)