Before You Begin
Before configuration, be sure to review the following notes about supported and unsupported features and parameters:
MapR Parameters for Dynamic Provisioning
- Volume attributes must be represented as a string (enclosed within quotations). Using
an integer or boolean is not supported. In the following example, the
aetype
attribute will generate an error because the value (1
) is not enclosed in quotations.namePrefix: "pv" mountPrefix: "/pv" type: "rw" advisoryquota: "100M" aetype: 1
- The following MapR parameters are ignored because they are redundant or not supported
in the Kubernetes implementation:
mount
quota*
createparent
path
name
*Specifying resources: requests: storage
in a PersistentVolumeClaim (PVC)
(see Example: Mounting a PersistentVolume for Static Provisioning Using the FlexVolume Driver)
makes it unnecessary to set the MapR quota
parameter.
Kubernetes Access Modes
Kubernetes access modes control how a PersistentVolume (PV) is mounted on the host. Access modes can be specified on both PVs and PVCs.
Only Volumes with a matching Access Mode will be bound to a PVC. Unfortunately, beyond the
PVC/PV binding behavior, PVs using FlexVolume drivers ignore these access modes in the
current version of Kubernetes. All access modes will work with the MapR Data Fabric for
Kubernetes. However, they will appear the same. This means the ROX mode will not make the
volume read only. If you want read-only behavior, specify readOnly:
in the
FlexVolume driver flags.
PersistentVolumeClaim Protection
PVC protection is a Kubernetes 1.9 alpha feature that restricts the user from deleting a PVC while it is being used by an active Pod. Alpha features are not tested for use with the volume plug-in and provisioner. However, without PVC protection, you should not delete a PVC that is still attached to Pods. If you have not turned on PVC protection, ensure that you do not delete PVC’s that are in use. In the current release of the MapR Data Fabric for Kubernetes, deleting a PVC causes undefined behavior.
Reclaim Policy
The Kubernetes reclaimPolicy
parameter controls what happens to a
PersistentVolume if the corresponding PersistentVolumeClaim is deleted. The
Recycle
Reclaim Policy is not supported by Kubernetes FlexVolume Drivers,
so it cannot be used with KDF. The Retain Policy is currently broken in Kubernetes 1.9
StoragePolicies but not in static PersistentVolumes. The MapR Data Fabric for Kubernetes has
a workaround that allows Retain policy on dynamically provisioned volumes by passing the
reclaimPolicy:
in the parameters rather than in the standard place that
FlexVolumes ignore. You can specify the reclaim policy normally when you configure a
persistent volume.
Reclaim Policy Value | Description | Support |
---|---|---|
Delete (default value) | The PersistentVolume and the MapR volume are deleted when the user deletes the corresponding PersistentVolumeClaim. | Supported |
Retain | The PersistentVolume and the MapR volume are not deleted when the user deletes the corresponding PersistentVolumeClaim. | Supported* |
Recycle | Performs a basic scrub on a PersistentVolume and makes it available for a new PersistentVolumeClaim. | Not Supported by Kubernetes Flexvolumes |
*Not supported for dynamic provision without a workaround.
For more information about the reclaim policy, see Change the Reclaim Policy of a PersistentVolume.
Kubernetes Mount Options
The Kubernetes mountOptions
parameter is not supported for use with the
MapR Data Fabric for Kubernetes because it is not supported for use with the FlexVolume
plug-in.