@@ -830,17 +830,26 @@ the request is for storage. The same
830830[resource model](https://git.k8s.io/design-proposals-archive/scheduling/resources.md)
831831applies to both volumes and claims.
832832
833+ {{< note >}}
834+ For `Filesystem` volumes, the storage request refers to the "outer" volume size
835+ (i.e. the allocated size from the storage backend).
836+ This means that the writeable size may be slightly lower for providers that
837+ build a filesystem on top of a block device, due to filesystem overhead.
838+ This is especially visible with XFS, where many metadata features are enabled by default.
839+ {{< /note >}}
840+
833841# ## Selector
834842
835843Claims can specify a
836844[label selector](/docs/concepts/overview/working-with-objects/labels/#label-selectors)
837- to further filter the set of volumes. Only the volumes whose labels match the selector
838- can be bound to the claim. The selector can consist of two fields :
845+ to further filter the set of volumes.
846+ Only the volumes whose labels match the selector can be bound to the claim.
847+ The selector can consist of two fields :
839848
840849* `matchLabels` - the volume must have a label with this value
841850* `matchExpressions` - a list of requirements made by specifying key, list of values,
842- and operator that relates the key and values. Valid operators include In, NotIn,
843- Exists, and DoesNotExist.
851+ and operator that relates the key and values.
852+ Valid operators include `In`, `NotIn`, ` Exists` , and ` DoesNotExist` .
844853
845854All of the requirements, from both `matchLabels` and `matchExpressions`, are
846855ANDed together – they must all be satisfied in order to match.
@@ -850,31 +859,30 @@ ANDed together – they must all be satisfied in order to match.
850859A claim can request a particular class by specifying the name of a
851860[StorageClass](/docs/concepts/storage/storage-classes/)
852861using the attribute `storageClassName`.
853- Only PVs of the requested class, ones with the same `storageClassName` as the PVC, can
854- be bound to the PVC.
862+ Only PVs of the requested class, ones with the same `storageClassName` as the PVC,
863+ can be bound to the PVC.
855864
856865PVCs don't necessarily have to request a class. A PVC with its `storageClassName` set
857866equal to `""` is always interpreted to be requesting a PV with no class, so it
858- can only be bound to PVs with no class (no annotation or one set equal to
859- ` "" ` ). A PVC with no `storageClassName` is not quite the same and is treated differently
867+ can only be bound to PVs with no class (no annotation or one set equal to `""`).
868+ A PVC with no `storageClassName` is not quite the same and is treated differently
860869by the cluster, depending on whether the
861870[`DefaultStorageClass` admission plugin](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
862871is turned on.
863872
864- * If the admission plugin is turned on, the administrator may specify a
865- default StorageClass. All PVCs that have no `storageClassName` can be bound only to
866- PVs of that default. Specifying a default StorageClass is done by setting the
867- annotation `storageclass.kubernetes.io/is-default-class` equal to `true` in
868- a StorageClass object. If the administrator does not specify a default, the
869- cluster responds to PVC creation as if the admission plugin were turned off. If more than one
870- default StorageClass is specified, the newest default is used when the
871- PVC is dynamically provisioned.
872- * If the admission plugin is turned off, there is no notion of a default
873- StorageClass. All PVCs that have `storageClassName` set to `""` can be
874- bound only to PVs that have `storageClassName` also set to `""`.
875- However, PVCs with missing `storageClassName` can be updated later once
876- default StorageClass becomes available. If the PVC gets updated it will no
877- longer bind to PVs that have `storageClassName` also set to `""`.
873+ * If the admission plugin is turned on, the administrator may specify a default StorageClass.
874+ All PVCs that have no `storageClassName` can be bound only to PVs of that default.
875+ Specifying a default StorageClass is done by setting the annotation
876+ ` storageclass.kubernetes.io/is-default-class` equal to `true` in a StorageClass object.
877+ If the administrator does not specify a default, the cluster responds to PVC creation
878+ as if the admission plugin were turned off.
879+ If more than one default StorageClass is specified, the newest default is used when
880+ the PVC is dynamically provisioned.
881+ * If the admission plugin is turned off, there is no notion of a default StorageClass.
882+ All PVCs that have `storageClassName` set to `""` can be bound only to PVs
883+ that have `storageClassName` also set to `""`.
884+ However, PVCs with missing `storageClassName` can be updated later once default StorageClass becomes available.
885+ If the PVC gets updated it will no longer bind to PVs that have `storageClassName` also set to `""`.
878886
879887See [retroactive default StorageClass assignment](#retroactive-default-storageclass-assignment) for more details.
880888
0 commit comments