Instalación del complemento de clúster IBM Cloud Object Storage

Puedes activar el complemento « IBM Cloud Object Storage » desde la consola de IBM Cloud o desde la CLI.

Requisitos previos:

  • El complemento IBM Cloud Object Storage requiere al menos 0.3 vCPU y 360 MB de memoria.
  • El complemento está disponible para Red Hat CoreOS (RHCOS) y Ubuntu worker nodes. Si su clúster tiene nodos RHEL y RHCOS, el complemento se implementa sólo en los nodos RHCOS.
  • Configure una instancia de IBM Cloud Object Storage.
  • Opcional Si planea utilizar el versionado de cubos, sus credenciales de servicio deben tener permisos de Administrador o Escritor para activar o desactivar el versionado de cubos en el cubo. Para obtener más información, consulta Primeros pasos con el control de versiones.

Comprender la creación y eliminación de cubos

  • Puede utilizar un cubo existente especificando el nombre del cubo en su PVC.
  • Si proporciona un nombre de cubo y ese cubo no existe, se creará un cubo con ese nombre.
  • Si no proporciona un nombre de cubo, se creará un cubo con la convención de nomenclatura temp-xxx.
  • Los cubos se eliminan en función de la política de recuperación definida en la clase de almacenamiento.
    • Si se establece reclaimPolicy: Delete, el cubo se elimina cuando se elimina el PVC.
    • Si se establece reclaimPolicy: Retain, el bucket se conserva incluso después de eliminar el PVC.

Activar el complemento « IBM Cloud Object Storage » desde la consola

  1. En el panel de control de clústeres de Red Hat OpenShift on IBM Cloud, selecciona el clúster en el que deseas activar el complemento.
  2. En la sección «Complementos», busca el Cloud Object Storage complemento y haz clic en « Instalar ».
  3. En el panel « Instalar complemento: Cloud Object Storage », selecciona una versión en el menú desplegable « Versión ».
  4. Opcional: Configura los siguientes parámetros.
maxVolumesPerNode
Establece el número máximo de volúmenes de « IBM Cloud Object Storage » que se pueden montar en un único nodo. El valor por defecto es « 0 », lo que significa que no se aplica ningún límite.
restrictNodeServerScheduling
Establece el valor en « true » para restringir que los pods de nodeserver se ejecuten únicamente en nodos etiquetados como « cos.csi.ibm.io/csi-node=true ». El valor por defecto es « false », lo que significa que los pods de nodeserver se programan en todos los nodos.
  1. Pulse Instalar. El complemento puede tardar algunos minutos en desplegarse y estar listo para su uso.
  2. Verifique la instalación. En la sección «Complementos», comprueba que el Cloud Object Storage complemento muestra un estado de salud « Normal ».

Activación del complemento IBM Cloud Object Storage desde la CLI

Antes de empezar: acceda al clúster de Red Hat OpenShift.

  1. Actualiza el complemento « container-service » a la versión más reciente.
    ibmcloud update && ibmcloud plugin update container-service
    
  2. Enumera los complementos y busca la versión que deseas instalar.
    ibmcloud oc cluster addon versions
    
  3. Revise las opciones del complemento.
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. Instala el complemento.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. Verifique la instalación.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    
    OK
    Name                    Version   Health State   Health Status
    ibm-object-csi-driver   1.0       normal         Addon Ready. For more info: http://ibm.biz/addon-state (H1500)
    
  6. Enumera las clases de almacenamiento disponibles. El controlador es compatible con clases de almacenamiento tanto regionales como interregionales para los montadores s3fs y rclone.
    oc get sc | grep object
    
    ibm-object-storage-smart-cross-region-rclone             cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-rclone-retain      cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-s3fs               cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-s3fs-retain        cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-rclone                          cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-rclone-retain                   cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-s3fs                            cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-s3fs-retain                     cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-rclone          cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-rclone-retain   cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-s3fs            cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-s3fs-retain     cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-rclone                       cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-rclone-retain                cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-s3fs                         cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-s3fs-retain                  cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    

Restricción de la programación de pods de nodoserver

De forma predeterminada, los pods del servidor de nodos del controlador COS CSI se programan en todos los nodos del clúster. Puedes utilizar el parámetro « restrictNodeServerScheduling » para restringir la programación de los pods de nodeserver únicamente a los nodos etiquetados con « cos.csi.ibm.io/csi-node=true ».

Puedes configurar « restrictNodeServerScheduling » al habilitar el complemento, o actualizarlo más adelante aplicando el parche « ConfigMap ».

  • Para establecer « restrictNodeServerScheduling » al habilitar el complemento, incluye el indicador « --param » en el comando de habilitación.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • Para actualizar « restrictNodeServerScheduling » una vez que el complemento ya esté activado, sigue estos pasos.
  1. Enumera los nodos de tu clúster y determina dónde quieres que se ejecuten los pods del controlador COS.
    oc get nodes
    
    Salida de ejemplo
    NAME            STATUS   ROLES    AGE    VERSION
    10.241.0.11     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.0.12     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.0.13     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.10   Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.11   Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.9    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.12    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.13    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.14    Ready    <none>   5d2h   v1.35.5+IKS
    
  2. Comprueba que los pods de nodeserver estén actualmente en ejecución en todos los nodos.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Salida de ejemplo
    NAME                        READY   STATUS    RESTARTS   AGE    IP              NODE            NOMINATED NODE   READINESS GATES
    ibm-object-csi-node-2pj2j   3/3     Running   0          145m   172.17.14.10    10.241.0.12     <none>           <none>
    ibm-object-csi-node-7bhwh   3/3     Running   0          145m   172.17.1.72     10.241.65.12    <none>           <none>
    ibm-object-csi-node-7l9hc   3/3     Running   0          145m   172.17.17.6     10.241.128.9    <none>           <none>
    ibm-object-csi-node-cxzt7   3/3     Running   0          145m   172.17.39.72    10.241.0.11     <none>           <none>
    ibm-object-csi-node-dw6qs   3/3     Running   0          145m   172.17.46.77    10.241.128.10   <none>           <none>
    ibm-object-csi-node-rpcvr   3/3     Running   0          145m   172.17.32.198   10.241.65.13    <none>           <none>
    ibm-object-csi-node-swqtg   3/3     Running   0          145m   172.17.16.69    10.241.0.13     <none>           <none>
    ibm-object-csi-node-sxbbs   3/3     Running   0          145m   172.17.26.7     10.241.65.14    <none>           <none>
    ibm-object-csi-node-xm8bt   3/3     Running   0          145m   172.17.20.200   10.241.128.11   <none>           <none>
    
  3. Etiqueta los nodos en los que quieras que se programen los pods de nodeserver.
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    Salida de ejemplo
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. Activa la restricción actualizando el archivo « ConfigMap ».
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    Salida de ejemplo
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. Comprueba que los pods de nodeserver solo se programen en nodos etiquetados.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Salida de ejemplo
    NAME                        READY   STATUS    RESTARTS   AGE    IP             NODE           NOMINATED NODE   READINESS GATES
    ibm-object-csi-node-cxzt7   3/3     Running   0          145m   172.17.39.72   10.241.0.11    <none>           <none>
    ibm-object-csi-node-7bhwh   3/3     Running   0          145m   172.17.1.72    10.241.65.12   <none>           <none>
    
restrictNodeServerScheduling opciones
Valor Comportamiento
restrictNodeServerScheduling: "false" (Valor predeterminado) Los pods de Nodeserver se programan en todos los nodos.
restrictNodeServerScheduling: "true" Los pods de Nodeserver solo se programan en nodos etiquetados como « cos.csi.ibm.io/csi-node=true ».

Configuración de los volúmenes máximos por nodo

Por defecto, el controlador COS CSI no limita el número de volúmenes que se pueden montar en un único nodo. Puedes utilizar el parámetro « maxVolumesPerNode » para establecer el número máximo de volúmenes por nodo.

Puedes configurar « maxVolumesPerNode » al habilitar el complemento, o actualizarlo más adelante aplicando el parche « ConfigMap ».

  • Para establecer « maxVolumesPerNode » al habilitar el complemento, incluye el indicador « --param » en el comando de habilitación.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • Para actualizar maxVolumesPerNode una vez que el complemento ya esté activado, aplica el parche al complemento gestionado ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    Salida de ejemplo
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode opciones
Valor Comportamiento
maxVolumesPerNode: "0" (Valor predeterminado) No hay límite en el número de volúmenes que se pueden montar por nodo.
maxVolumesPerNode: "VALUE" Limita el número de volúmenes que se pueden montar en un único nodo al valor especificado.

Implementación de una aplicación que utiliza IBM Cloud Object Storage

Crea un secreto de « Kubernetes » que contenga tus credenciales de COS.

  1. Acceda al clúster de Red Hat OpenShift.

  2. Guarde la siguiente configuración como un archivo llamado secret.yaml. Proporcione credenciales IAM o HMAC, pero no ambas.

    • Para las credenciales IAM, utilice una combinación de apiKey y serviceId de Object Storage.
    • Para las credenciales HMAC, utilice accessKey y secretKey de Object Storage.
    apiVersion: v1
    kind: Secret
    type: cos-s3-csi-driver
    metadata:
        name: cos-secret-1 # Name your secret. This same name is used for the PVC in the following steps.
        namespace: <namespace> # Specify the namespace where you want to create the secret.
    data:
        apiKey: <base64-encoded-COS-Service-Instance-apikey>
        serviceID: <base64-encoded-COS-resource_instance_id>
        accessKey: <base64-encoded-HMAC-access_key_id>
        secretKey: <base64-encoded-HMAC-secret_access_key>
        kp-root-key-crn: <CRN> # Key Protect or HPCS root key crn in base64 encoded format
    stringData:
        bucketName: <bucket-name> # Optional. If you don't provide a bucket name, a bucket with the naming convention s3fs-timestamp-xxx or rclone-timestamp-xxx is created.
        bucketVersioning: "false" # Bucket versioning is set to false by default. Set to "true" to enable bucket versioning. Set to "false" to disable versioning for a bucket where versioning is enabled. Must be a string value.
        # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec.
        mountOptions: |
            # Review or update the following default s3fs mount options
            #multipart_size=52
            #multireq_max=20
            #max_dirty_data=5120
            #parallel_count=20
            #max_stat_cache_size=100000
            #retries=5
            #kernel_cache
            # Review or update the following default rclone mount options
            #acl=private
            #bucket_acl=private
            #upload_cutoff=100Mi
            #chunk_size=16Mi
            #max_upload_parts=1000
            #upload_concurrency=8
    
    mountOptions
    Puedes personalizar las opciones de montaje para s3fs o rclone editando mountOptions en tu secreto. Alinea las opciones que especifiques con la clase de almacenamiento que utiliza tu PVC. Para revisar los valores por defecto de una clase de almacenamiento, ejecute oc describe storageclass <storageclass_name> o oc describe storageclass <storageclass_name>. Para más información, consulte s3fs opciones de montaje y rclone opciones de montaje.

    Actualmente, el complemento está habilitado para admitir un conjunto fijo de opciones de montaje con la validación adecuada para cada opción de montaje. Si desea utilizar otras opciones de montaje que no figuran en la lista de validación, póngase en contacto con el servicio de asistencia para activarlas.

  3. Codifica todos los parámetros de datos secretos en base64.

    echo -n "<value>" | base64
    
  4. Actualice secret.yaml con los valores codificados en base64.

  5. Cree el secreto:

    oc apply -f secret.yaml
    

Crear un PVC

Puedes utilizar un único secreto para varios PVC o un secreto por PVC.

Puedes gestionar este comportamiento utilizando las siguientes anotaciones en el PVC yaml. Estas anotaciones ayudan al conductor a asignar el PVC al secreto correcto.

cos.csi.driver/secret: "<custom-secret>"

Asegúrate de que tu «secret», «PVC» y «pods» estén todos en el mismo espacio de nombres

Ejemplo PVC para un 1-to-1 secreto a PVC mapeo dando a su PVC el mismo nombre que el secreto que creó anteriormente.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cos-secret-1 # Give your PVC the same name as the secret you created in the previous step.
  namespace: <namespace> # The namespace where you want to create the PVC.
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: <storage_class_name> # The storage class you want to use.

Ejemplo de PVC para utilizar 1 secreto a muchos PVC utilizando anotaciones para especificar el secreto.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cos-csi-pvc1
  namespace: <namespace> # The namespace where you want to create the PVC.
  annotations:
    cos.csi.driver/secret: "<custom-secret>"
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 256Mi
  storageClassName: <storage_class_name> # The storage class you want to use.
  1. Elija uno de los ejemplos anteriores y personalícelo para su caso de uso. Para obtener una lista de las clases de almacenamiento, consulte la referencia de clases de almacenamiento.

  2. Cree la PVC.

    oc apply -f pvc.yaml
    

Crear un despliegue

  1. Guarda la siguiente configuración en un archivo llamado « dep.yaml ».

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: <name>
      labels:
        app: <name>
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: <name>
      template:
        metadata:
          labels:
        app: <name>
        spec:
          containers:
          - name: app-frontend
            image: <image> # Enter your app image.
            imagePullPolicy: IfNotPresent
            volumeMounts:
            - mountPath: <path_you_want_to_mount_the_volume_on> # For example `/dev`
              name: cos-csi-volume
          volumes:
          - name: cos-csi-volume
            persistentVolumeClaim:
              claimName: <pvc_name> # Enter the name of the PVC you created earlier.
    
  2. Cree el despliegue.

    oc apply -f dep.yaml
    

Desactivación del complemento IBM Cloud Object Storage

Los secretos, PVCs y despliegues existentes no se eliminan al desactivar el complemento ni con las actualizaciones de parches. No hay interrupciones en las cargas de trabajo existentes de los clientes.

  1. Ejecuta el siguiente comando para desactivar el complemento.
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    Salida de ejemplo
    Data and resources that you created for the add-on might be deleted when the add-on is disabled. Continue? [y/N]> y
    Disabling add-on ibm-object-csi-driver for cluster XXX...
    OK
    
  2. Comprueba que se haya eliminado el complemento.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

Migración del complemento Helm al complemento clúster

  1. Acceda al clúster de Red Hat OpenShift.

  2. Obtenga los detalles de sus PVC y seleccione uno para migrar.

    oc get pvc --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name' | tail -n +2 | while read namespace pvc; do kubectl describe pvc "$pvc" -n "$namespace" | grep 'volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs' > /dev/null ; if [ $? -eq 0 ]; then echo "PVC: $pvc in Namespace: $namespace uses ibm.io/ibmc-s3fs storage provisioner"; fi; done
    

    Salida de ejemplo

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. Describe el PVC y obtén el nombre del cubo.

    oc describe pvc <pvc_name> | grep ibm.io/bucket:
    

    Salida de ejemplo

    ibm.io/bucket: test-s3
    
  4. Vuelve a crear tu secreto con el nombre del cubo incluido.

    apiVersion: v1
    kind: Secret
    type: cos-s3-csi-driver
    metadata:
        name: cos-secret-1 # Name your secret.
        namespace: <namespace> # Specify the namespace where you want to create the secret.
    data:
        accessKey: <base64-encoded-HMAC-access-key>
        secretKey: <base64-encoded-HMAC-secret-key>
    stringData:
        bucketName: <bucket-name>
        # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec.
        mountOptions: |
            key1=value1
            key2=value2
    
  5. Busque la clase de almacenamiento que se utilizó en su PVC.

    oc describe pvc <pvc_name> | grep StorageClass:
    

    Ejemplo de comando para un PVC llamado test-s3.

    oc describe pvc test-s3 | grep StorageClass:
    

    Salida de ejemplo

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. Revise las nuevas clases de almacenamiento disponibles con el complemento y seleccione una clase de sustitución.

    • Si utilizó una clase flex, elija una de las nuevas clases smart.
    • Si utilizó una clase standard, elija una de las nuevas clases standard.
    • Las clases cold y vault ya no están disponibles con el complemento; elija en su lugar una clase smart o standard.
  7. Revise los detalles de su PVC.

    oc describe pvc test-s3
    

    Salida de ejemplo

    Name:          pvc-test
    Namespace:     default
    StorageClass:  ibmc-s3fs-smart-perf-regional
    Status:        Bound
    Volume:        pvc-c625474d-31f0-4929-bc3e-feace1fb42fb
    Labels:        <none>
    Annotations:   ibm.io/auto-create-bucket: true
                ibm.io/auto-delete-bucket: true
                ibm.io/bucket: bha-test-s23
                ibm.io/secret-name: satstoragesecret
                pv.kubernetes.io/bind-completed: yes
                pv.kubernetes.io/bound-by-controller: yes
                volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs
    Finalizers:    [kubernetes.io/pvc-protection]
    Capacity:      3Gi
    Access Modes:  RWO
    VolumeMode:    Filesystem
    Used By:       test-pod
    Events:        <none>
    
  8. Crea un PVC de sustitución que utilice una nueva clase de almacenamiento y haga referencia al secreto que creaste anteriormente.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: cos-csi-pvc1
    namespace: <namespace> # The namespace where you want to create the PVC.
    annotations:
        cos.csi.driver/secret: "cos-secret-1"  # Secret created in step 4
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
        requests:
        storage: 256Mi
    storageClassName: <storage_class_name> # The storage class you picked based on old storage class mapping.
    
  9. Verifique que el PVC es Bound.

    oc get pvc
    
  10. Consulta los detalles de tu aplicación.

    oc get pods
    
  11. Reduzca su aplicación a cero.

    kubectl scale deployment --replicas=0 my-app
    
  12. Cree una implantación de sustitución que haga referencia a la PVC creada en el paso anterior.

  13. Una vez que se haya ejecutado la nueva implantación, puede eliminar la antigua.

  14. Repite estos pasos para cada PVC que quieras migrar.

IBM Cloud Object Storage clases de almacenamiento de clústeres adicionales

El complemento de clúster IBM Cloud Object Storage proporciona clases de almacenamiento para los montadores s3fs y rclone. Elija una clase de almacenamiento que se ajuste a sus requisitos de acceso a datos. La clase de almacenamiento determina la clase de bucket, la política de recuperación y el comportamiento de montaje predeterminado para el bucket que se crea para su carga de trabajo.

Standard
Utilízalo para datos calientes a los que accedes con frecuencia, como datos para aplicaciones web o móviles.
Inteligente
Se utiliza para cargas de trabajo y datos que no siguen un patrón de uso específico, o cuando el patrón de uso es difícil de predecir.
Clases de almacenamiento complementarias del clúster COS
Nombre Clase de grupo Resiliencia Montador Política de reclamación Modalidad de enlace
ibm-almacenamiento-de-objetos-smart-cross-region-rclone Inteligente Interregional rclone Suprimir Inmediato
ibm-almacenamiento-de-objetos-smart-cross-region-rclone-retain Inteligente Interregional rclone Retener Inmediato
ibm-object-storage-smart-cross-region-s3fs Inteligente Interregional s3fs Suprimir Inmediato
ibm-object-storage-smart-cross-region-s3fs-retain Inteligente Interregional s3fs Retener Inmediato
ibm-almacenamiento-de-objetos-smart-rclone Inteligente Regional rclone Suprimir Inmediato
ibm-almacenamiento-de-objetos-smart-rclone-retain Inteligente Regional rclone Retener Inmediato
ibm-object-storage-smart-s3fs Inteligente Regional s3fs Suprimir Inmediato
ibm-object-storage-smart-s3fs-retain Inteligente Regional s3fs Retener Inmediato
ibm-object-storage-standard-cross-region-rclone Standard Interregional rclone Suprimir Inmediato
ibm-almacenamiento-de-objetos-estándar-entre-regiones-rclone-retain Standard Interregional rclone Retener Inmediato
ibm-object-storage-standard-cross-region-s3fs Standard Interregional s3fs Suprimir Inmediato
ibm-object-storage-standard-cross-region-s3fs-retain Standard Interregional s3fs Retener Inmediato
ibm-almacenamiento-de-objetos-estándar-rclone Standard Regional rclone Suprimir Inmediato
ibm-object-storage-standard-rclone-retain Standard Regional rclone Retener Inmediato
ibm-object-storage-standard-s3fs Standard Regional s3fs Suprimir Inmediato
ibm-object-storage-standard-s3fs-retain Standard Regional s3fs Retener Inmediato

Para revisar la configuración detallada de los cubos de una clase de almacenamiento, ejecute oc describe storageclass <storageclass_name> o oc describe storageclass <storageclass_name>.

Parámetros de clase de almacenamiento

Todas las clases de almacenamiento adicionales del clúster incluyen los siguientes parámetros básicos.

Parámetros básicos para las clases de almacenamiento adicionales del clúster COS
Parámetro Descripción
client Identifica el tipo de cliente que utiliza el controlador. Las clases de almacenamiento adicionales utilizan awss3.
cosEndpoint Define el punto final de IBM Cloud Object Storage para la región del cubo.
csi.storage.k8s.io/node-publish-secret-name Hace referencia al nombre del secreto que contiene sus credenciales IBM Cloud Object Storage.
csi.storage.k8s.io/node-publish-secret-namespace Hace referencia al espacio de nombres del secreto que contiene sus credenciales IBM Cloud Object Storage.
locationConstraint Define la clase de cubo y la región, como au-syd-smart o au-syd-standard.
mounter Especifica si la clase de almacenamiento utiliza el montador s3fs o rclone.

Opciones de montaje por defecto de la clase de almacenamiento s3fs

Las clases de almacenamiento s3fs utilizan las siguientes opciones de montaje por defecto.

Opciones de montaje predeterminadas para las clases de almacenamiento del complemento COS « s3fs »
Opción de montaje Descripción
multipart_size=52 Establece el tamaño de la parte, en MB, para cada solicitud multiparte.
multireq_max=20 Establece el número máximo de peticiones paralelas para listar objetos.
max_dirty_data=5120 Descarga los datos sucios en S3 después de escribir un número especificado de MB. El valor mínimo admitido es 50. Un valor de -1 desactiva este comportamiento.
parallel_count=20 Establece el número de peticiones paralelas para subir objetos grandes. s3fs sube objetos grandes utilizando peticiones multiparte y envía peticiones en paralelo.
max_stat_cache_size=100000 Establece el número máximo de entradas en la caché de estadísticas y la caché de enlaces simbólicos.
retries=5 Establece el número de veces que se reintentará una transacción fallida en S3.
kernel_cache Activa la caché de búfer del núcleo para el punto de montaje del volumen. Los datos que se leen de IBM Cloud Object Storage se almacenan en la caché del núcleo para facilitar un acceso de lectura más rápido. La caché del kernel está activada para las clases de almacenamiento estándar e inteligente s3fs.

Opciones de montaje por defecto de la clase de almacenamiento rclone

Las clases de almacenamiento rclone utilizan las siguientes opciones de montaje por defecto.

Opciones de montaje predeterminadas para las clases de almacenamiento del complemento rclone de COS
Opción de montaje Descripción
acl=private Garantiza que los objetos cargados no sean de acceso público.
bucket_acl=private Establece la ACL predeterminada para los buckets que crea rclone en private.
upload_cutoff=100Mi Sube archivos mayores que 100 MiB utilizando la subida multiparte. Los archivos más pequeños se cargan en una sola solicitud.
chunk_size=16Mi Establece el tamaño de cada parte en una carga multiparte.
max_upload_parts=1000 Establece el número máximo de partes por carga multiparte y limita indirectamente el tamaño máximo de archivo admitido con el chunk_size configurado. Con chunk_size=16Mi, el tamaño máximo de archivo es 16 GiB.
upload_concurrency=8 Establece el número de partes que se cargan en paralelo durante una carga multiparte.