@@ -830,17 +830,26 @@ the request is for storage. The same
830
830
[resource model](https://git.k8s.io/design-proposals-archive/scheduling/resources.md)
831
831
applies to both volumes and claims.
832
832
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
+
833
841
# ## Selector
834
842
835
843
Claims can specify a
836
844
[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 :
839
848
840
849
* `matchLabels` - the volume must have a label with this value
841
850
* `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` .
844
853
845
854
All of the requirements, from both `matchLabels` and `matchExpressions`, are
846
855
ANDed 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.
850
859
A claim can request a particular class by specifying the name of a
851
860
[StorageClass](/docs/concepts/storage/storage-classes/)
852
861
using 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.
855
864
856
865
PVCs don't necessarily have to request a class. A PVC with its `storageClassName` set
857
866
equal 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
860
869
by the cluster, depending on whether the
861
870
[`DefaultStorageClass` admission plugin](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
862
871
is turned on.
863
872
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 `""`.
878
886
879
887
See [retroactive default StorageClass assignment](#retroactive-default-storageclass-assignment) for more details.
880
888
0 commit comments