Configuración de opciones de montaje de OBS
Esta sección describe cómo configurar las opciones de montaje de volumen de OBS. Puede configurar las opciones de montaje en un PV y vincularlo a un PVC. Alternativamente, configure las opciones de montaje en un StorageClass y use el StorageClass para crear un PVC. De esta manera, los PV se pueden crear dinámicamente y heredar opciones de montaje configuradas en el StorageClass de forma predeterminada.
Requisitos previos
La versión del complemento más antiguo debe ser 1.2.8 o posterior. El complemento identifica las opciones de montaje y las transfiere a los recursos de almacenamiento subyacentes, que determinan si las opciones especificadas son válidas.
Restricciones
Las opciones de montaje no se pueden configurar para el contenedor de Kata.
Opciones de montaje de OBS
Al montar un volumen de OBS, el complemento siempre preestablece las opciones descritas en Tabla 1 y Tabla 2 de forma predeterminada. Las opciones de Tabla 1 son obligatorias. Puede configurar otras opciones de montaje si es necesario. Para obtener más información, consulte Montaje de un sistema de archivos paralelo.
Parámetro |
Descripción |
---|---|
use_ino |
Si está habilitado, obsfs asigna el número inode. Habilitado por defecto en el modo de lectura/escritura. |
big_writes |
Si se configura, se puede modificar el tamaño máximo de la caché. |
nonempty |
Permite rutas de montaje no vacías. |
allow_other |
Permite a otros usuarios acceder al sistema de archivos paralelo. |
no_check_certificate |
Deshabilita la verificación de certificados del servidor. |
enable_noobj_cache |
Habilita las entradas de caché para objetos que no existen, lo que puede mejorar el rendimiento. Habilitado por defecto en el modo de lectura/escritura del bucket de objetos. Esta opción ya no está establecida de forma predeterminada desde everest 1.2.40. |
sigv2 |
Especifica la versión de firma. Se utiliza de forma predeterminada en bucket de objetos. |
Parámetro |
Descripción |
---|---|
max_write=131072 |
Este parámetro solo es válido cuando big_writes está configurado. El valor recomendado es 128 KB. |
ssl_verify_hostname=0 |
Deshabilita la verificación del certificado SSL basada en el nombre del host. |
max_background=100 |
Permite establecer el número máximo de solicitudes de espera en segundo plano. Se utiliza de forma predeterminada en sistemas de archivos paralelos. |
public_bucket=1 |
Si se establece en 1, los bucket públicos se montan de forma anónima. Habilitado por defecto en el modo de lectura/escritura del bucket de objetos. |
umask |
Máscara del permiso del archivo de configuración. |
Configuración de opciones de montaje en un PV
Puede utilizar el campo mountOptions para configurar las opciones de montaje en un PV. Las opciones que puede configurar en mountOptions se enumeran en Opciones de montaje de OBS.
- Utilice kubectl para conectarse al clúster. Para obtener más información, véase Conexión a un clúster con kubectl.
- Configure las opciones de montaje en un PV. Por ejemplo:
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. everest.io/enterprise-project-id: <your_project_id> # (Optional) Enterprise project ID. If an enterprise project is specified, you need to use the same enterprise project when creating a PVC. Otherwise, the PVC cannot be bound to a PV. 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=0027
- Después de crear un PV, puede crear un PVC y vincularlo al PV y, a continuación, montar el PV en el contenedor en la carga de trabajo. Para obtener más información, véase Uso de un bucket de OBS existente con un PV estático.
- Compruebe si las opciones de montaje tienen efecto.
En este ejemplo, el PVC se monta en la carga de trabajo que utiliza la imagen nginx:latest. Puede iniciar sesión en el nodo donde reside el pod en el que está montado el volumen OBS y ver los detalles de progreso.
Ejecute el siguiente comando:- Bucket de objetos ps -ef | grep s3fs
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=0027 -o max_write=131072 -o multipart_size=20
- Sistema de archivos paralelo ps -ef | grep obsfs
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=0027 -o max_write=131072
- Bucket de objetos ps -ef | grep s3fs
Configuración de las opciones de montaje en un StorageClass
Puede utilizar el campo mountOptions para configurar las opciones de montaje en un StorageClass. Las opciones que puede configurar en mountOptions se enumeran en Opciones de montaje de OBS.
- Utilice kubectl para conectarse al clúster. Para obtener más información, véase Conexión a un clúster con kubectl.
- Cree un StorageClass personalizado. Por ejemplo:
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
- Una vez configurado el StorageClass, puede usarlo para crear un PVC. De forma predeterminada, los PV creados dinámicamente heredan las opciones de montaje configuradas en el StorageClass. Para obtener más información, véase Uso de un bucket de OBS con un PV dinámico.
- Compruebe si las opciones de montaje tienen efecto.
En este ejemplo, el PVC se monta en la carga de trabajo que utiliza la imagen nginx:latest. Puede iniciar sesión en el nodo donde reside el pod en el que está montado el volumen OBS y ver los detalles de progreso.
Ejecute el siguiente comando:- Bucket de objetos ps -ef | grep s3fs
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=0027 -o max_write=131072 -o multipart_size=20
- Sistema de archivos paralelo ps -ef | grep obsfs
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=0027 -o max_write=131072
- Bucket de objetos ps -ef | grep s3fs