This section describes how to configure OBS volume mount options. You can configure mount options in a PV and bind the PV to a PVC. Alternatively, configure mount options in a StorageClass and use the StorageClass to create a PVC. In this way, PVs can be dynamically created and inherit mount options configured in the StorageClass by default.
The CCE Container Storage (Everest) add-on version must be 1.2.8 or later. This add-on identifies the mount options and transfers them to the underlying storage resources. The parameter settings take effect only if the underlying storage resources support the specified options.
Mount options cannot be configured for Kata containers.
When mounting an OBS volume, the Everest add-on presets the options described in Table 1 and Table 2 by default. The options in Table 1 are mandatory.
Parameter |
Value |
Description |
---|---|---|
use_ino |
Blank |
If enabled, obsfs allocates the inode number. Enabled by default in read/write mode. |
big_writes |
Blank |
If configured, the maximum size of the cache can be modified. |
nonempty |
Blank |
Allows non-empty mount paths. |
allow_other |
Blank |
Allows other users to access the parallel file system. |
no_check_certificate |
Blank |
Disables server certificate verification. |
enable_noobj_cache |
Blank |
Enables cache entries for objects that do not exist, which can improve performance. Enabled by default in object bucket read/write mode. This option is no longer configured by default since Everest 1.2.40. |
sigv2 |
Blank |
Specifies the signature version. Used by default in object buckets. |
public_bucket |
1 |
If this parameter is set to 1, public buckets are mounted anonymously. Enabled by default in object bucket read-only mode. |
Parameter |
Value |
Description |
---|---|---|
max_write |
131072 |
This parameter is valid only when big_writes is configured. The recommended value is 128 KB. |
ssl_verify_hostname |
0 |
Disables SSL certificate verification based on the host name. |
max_background |
100 |
Allows setting the maximum number of waiting requests in the background. Used by default in parallel file systems. |
umask |
A three-digit octal number |
Mask of the configuration file permission. For example, if the umask value is 022, the directory permission (the maximum permission is 777) is 755 (777 - 022 = 755, rwxr-xr-x). |
You can use the mountOptions field to configure mount options in a PV. The options you can configure in mountOptions are listed in OBS Mount Options.
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner everest.io/reclaim-policy: retain-volume-only # (Optional) The PV is deleted while the underlying volume is retained. name: pv-obs # PV name. spec: accessModes: - ReadWriteMany # Access mode. The value must be ReadWriteMany for OBS. capacity: storage: 1Gi # OBS volume capacity. csi: driver: obs.csi.everest.io # Dependent storage driver for the mounting. fsType: obsfs # Instance type. volumeHandle: <your_volume_id> # Name of the OBS volume. volumeAttributes: storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner everest.io/obs-volume-type: STANDARD everest.io/region: <your_region> # Region where the OBS volume is. nodePublishSecretRef: # Custom secret of the OBS volume. name: <your_secret_name> # Custom secret name. namespace: <your_namespace> # Namespace of the custom secret. persistentVolumeReclaimPolicy: Retain # Reclaim policy. storageClassName: csi-obs # Storage class name. mountOptions: # Mount options. - umask=027
In this example, the PVC is mounted to the workload that uses the nginx:latest image. You can log in to the node where the pod to which the OBS volume is mounted resides and view the progress details.
root 22142 1 0 Jun03 ? 00:00:00 /usr/bin/s3fs {your_obs_name} /mnt/paas/kubernetes/kubelet/pods/{pod_uid}/volumes/kubernetes.io~csi/{your_pv_name}/mount -o url=https://{endpoint}:443 -o endpoint={region} -o passwd_file=/opt/everest-host-connector/***_obstmpcred/{your_obs_name} -o nonempty -o big_writes -o sigv2 -o allow_other -o no_check_certificate -o ssl_verify_hostname=0 -o umask=027 -o max_write=131072 -o multipart_size=20
root 1355 1 0 Jun03 ? 00:03:16 /usr/bin/obsfs {your_obs_name} /mnt/paas/kubernetes/kubelet/pods/{pod_uid}/volumes/kubernetes.io~csi/{your_pv_name}/mount -o url=https://{endpoint}:443 -o endpoint={region} -o passwd_file=/opt/everest-host-connector/***_obstmpcred/{your_obs_name} -o allow_other -o nonempty -o big_writes -o use_ino -o no_check_certificate -o ssl_verify_hostname=0 -o max_background=100 -o umask=027 -o max_write=131072
You can use the mountOptions field to configure mount options in a StorageClass. The options you can configure in mountOptions are listed in OBS Mount Options.
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: csi-obs-mount-option provisioner: everest-csi-provisioner parameters: csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io csi.storage.k8s.io/fstype: s3fs everest.io/obs-volume-type: STANDARD reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: # Mount options. - umask=0027
In this example, the PVC is mounted to the workload that uses the nginx:latest image. You can log in to the node where the pod to which the OBS volume is mounted resides and view the progress details.
root 22142 1 0 Jun03 ? 00:00:00 /usr/bin/s3fs {your_obs_name} /mnt/paas/kubernetes/kubelet/pods/{pod_uid}/volumes/kubernetes.io~csi/{your_pv_name}/mount -o url=https://{endpoint}:443 -o endpoint={region} -o passwd_file=/opt/everest-host-connector/***_obstmpcred/{your_obs_name} -o nonempty -o big_writes -o sigv2 -o allow_other -o no_check_certificate -o ssl_verify_hostname=0 -o umask=027 -o max_write=131072 -o multipart_size=20
root 1355 1 0 Jun03 ? 00:03:16 /usr/bin/obsfs {your_obs_name} /mnt/paas/kubernetes/kubelet/pods/{pod_uid}/volumes/kubernetes.io~csi/{your_pv_name}/mount -o url=https://{endpoint}:443 -o endpoint={region} -o passwd_file=/opt/everest-host-connector/***_obstmpcred/{your_obs_name} -o allow_other -o nonempty -o big_writes -o use_ino -o no_check_certificate -o ssl_verify_hostname=0 -o max_background=100 -o umask=027 -o max_write=131072