diff --git a/docs/admin/admission-controllers.md b/docs/admin/admission-controllers.md index c7c3accd432fb..488062af63a8e 100644 --- a/docs/admin/admission-controllers.md +++ b/docs/admin/admission-controllers.md @@ -414,9 +414,9 @@ This admission controller also protects the access to `metadata.ownerReferences[ of an object, so that only users with "update" permission to the `finalizers` subresource of the referenced *owner* can change it. -### Persistent Volume Claim Protection (alpha) -{% assign for_k8s_version="v1.9" %}{% include feature-state-alpha.md %} -The `PVCProtection` plugin adds the `kubernetes.io/pvc-protection` finalizer to newly created Persistent Volume Claims (PVCs). In case a user deletes a PVC the PVC is not removed until the finalizer is removed from the PVC by PVC Protection Controller. Refer to the [PVC Protection](/docs/concepts/storage/persistent-volumes/#persistent-volume-claim-protection) for more detailed information. +### Storage Protection (beta) +{% assign for_k8s_version="v1.10" %}{% include feature-state-beta.md %} +The `StorageProtection` plugin adds the `kubernetes.io/pvc-protection` or `kubernetes.io/pv-protection` finalizers to newly created Persistent Volume Claims (PVCs) or Persistent Volumes (PV). In case a user deletes a PVC or PV the PVC or PV is not removed until the finalizer is removed from the PVC or PV by PVC or PV Protection Controller. Refer to the [PVC Protection](/docs/concepts/storage/persistent-volumes/#persistent-volume-claim-protection) for more detailed information. ### PersistentVolumeLabel (DEPRECATED) diff --git a/docs/concepts/storage/persistent-volumes.md b/docs/concepts/storage/persistent-volumes.md index 4324e6da43190..5cb1ade919a1c 100644 --- a/docs/concepts/storage/persistent-volumes.md +++ b/docs/concepts/storage/persistent-volumes.md @@ -70,14 +70,14 @@ Pods use claims as volumes. The cluster inspects the claim to find the bound vol Once a user has a claim and that claim is bound, the bound PV belongs to the user for as long as they need it. Users schedule Pods and access their claimed PVs by including a `persistentVolumeClaim` in their Pod's volumes block. [See below for syntax details](#claims-as-volumes). -### Persistent Volume Claim Protection -{% assign for_k8s_version="v1.9" %}{% include feature-state-alpha.md %} -The purpose of the PVC protection is to ensure that PVCs in active use by a pod are not removed from the system as this may result in data loss. +### Storage Protection +{% assign for_k8s_version="v1.10" %}{% include feature-state-beta.md %} +The purpose of the Storage Protection feature is to ensure that Persistent Volume Claims (PVCs) in active use by a pod are not removed from the system as this may result in data loss. -**Note:** PVC is in active use by a pod when the the pod status is `Pending` and the pod is assigned to a node or the pod status is `Running`. +**Note:** PVC is in active use by a pod when the pod status is `Pending` and the pod is assigned to a node or the pod status is `Running`. {: .note} -When the [PVC protection alpha feature](/docs/tasks/administer-cluster/pvc-protection/) is enabled, if a user deletes a PVC in active use by a pod, the PVC is not removed immediately. PVC removal is postponed until the PVC is no longer actively used by any pods. +When the [Storage Protection beta feature](/docs/tasks/administer-cluster/pvc-protection/) is enabled, if a user deletes a PVC in active use by a pod, the PVC is not removed immediately. PVC removal is postponed until the PVC is no longer actively used by any pods. You can see that a PVC is protected when the PVC's status is `Terminating` and the `Finalizers` list includes `kubernetes.io/pvc-protection`: ```shell diff --git a/docs/tasks/administer-cluster/pvc-protection.md b/docs/tasks/administer-cluster/pvc-protection.md index e7a06552f824f..ac9d952e2fcb3 100644 --- a/docs/tasks/administer-cluster/pvc-protection.md +++ b/docs/tasks/administer-cluster/pvc-protection.md @@ -2,28 +2,25 @@ approvers: - msau42 - jsafrane -title: Persistent Volume Claim Protection +title: Storage Protection --- {% capture overview %} -{% assign for_k8s_version="v1.9" %}{% include feature-state-alpha.md %} +{% assign for_k8s_version="v1.10" %}{% include feature-state-beta.md %} -As of Kubernetes 1.9, persistent volume claims (PVCs) that are in active use by a pod can be protected from pre-mature removal. +Persistent volume claims (PVCs) that are in active use by a pod can be protected from pre-mature removal. {% endcapture %} {% capture prerequisites %} -- A v1.9 or higher Kubernetes must be installed. -- As PVC Protection is a Kubernetes v1.9 alpha feature it must be enabled: -1. [Admission controller](/docs/admin/admission-controllers/) must be started with the [PVC Protection plugin](/docs/admin/admission-controllers/#persistent-volume-claim-protection-alpha). -2. All Kubernetes components must be started with the `PVCProtection` alpha features enabled. +- The Storage Protection feature is enabled in a version of Kubernetes in which it is supported. {% endcapture %} {% capture steps %} -## PVC Protection Verification +## Storage Protection feature used for PVC Protection The example below uses a GCE PD `StorageClass`, however, similar steps can be performed for any volume type. @@ -216,7 +213,7 @@ spec: Warning FailedScheduling 18s (x4 over 21s) default-scheduler persistentvolumeclaim "slzc" is being deleted ``` -- Wait until the pod status of both pods is `Terminated` (either delete the pods or wait until they finish). Afterwards, check that the PVC is removed. +- Wait until the pod status of both pods is `Terminated` or `Completed` (either delete the pods or wait until they finish). Afterwards, check that the PVC is removed. {% endcapture %}