Installazione del componente aggiuntivo del cluster IBM Cloud Object Storage

È possibile abilitare il componente aggiuntivo " IBM Cloud Object Storage " dalla console IBM Cloud o tramite la CLI.

Prerequisiti

  • Il componente aggiuntivo IBM Cloud Object Storage richiede almeno 0.3 vCPU e 360 MB di memoria.
  • Il componente aggiuntivo è disponibile per i nodi worker Red Hat CoreOS (RHCOS) e Ubuntu. Se il cluster ha sia nodi RHEL che RHCOS, il componente aggiuntivo viene distribuito solo sui nodi RHCOS.
  • Impostare un' istanza di IBM Cloud Object Storage.
  • Opzionale Se si intende usare il versioning del bucket, le credenziali del servizio devono avere le autorizzazioni di Manager o Writer per abilitare o disabilitare il versioning del bucket sul bucket. Per ulteriori informazioni, consultare il sito Introduzione alla gestione delle versioni.

Comprendere la creazione e la rimozione dei bucket

  • È possibile utilizzare un bucket esistente specificando il nome del bucket nel PVC.
  • Se si fornisce il nome di un bucket e questo non esiste, viene creato un bucket con quel nome.
  • Se non si fornisce un nome al bucket, viene creato un bucket con la convenzione di denominazione temp-xxx.
  • I bucket vengono eliminati in base ai criteri di recupero definiti nella classe di archiviazione.
    • Se è impostato reclaimPolicy: Delete, il bucket viene eliminato quando il PVC viene cancellato.
    • Se viene impostato reclaimPolicy: Retain, il bucket viene mantenuto anche dopo la cancellazione del PVC.

Attivazione del componente aggiuntivo “ IBM Cloud Object Storage ” dalla console

  1. Dalla dashboard dei cluster di Red Hat OpenShift on IBM Cloud, seleziona il cluster in cui desideri abilitare il componente aggiuntivo.
  2. Nella sezione " Componenti aggiuntivi ", individua il Cloud Object Storage componente aggiuntivo e fare clic su Installa.
  3. Nel pannello "Installa componente aggiuntivo": Cloud Object Storage, selezionare una versione dal menu a tendina " Versione".
  4. Facoltativo: configurare i seguenti parametri.
maxVolumesPerNode
Imposta il numero massimo di volumi " IBM Cloud Object Storage " che possono essere montati su un singolo nodo. Il valore predefinito è 0, il che significa che non viene applicato alcun limite.
restrictNodeServerScheduling
Impostare il valore su true per limitare l'esecuzione dei pod del nodeserver esclusivamente sui nodi contrassegnati con l'etichetta cos.csi.ibm.io/csi-node=true. Il valore predefinito è ` `false, il che significa che i pod nodeserver vengono pianificati su tutti i nodi.
  1. Fai clic su Install. Potrebbero essere necessari diversi minuti prima che il componente aggiuntivo sia distribuito e pronto per l'utilizzo.
  2. Verificare l'installazione. Nella sezione " Componenti aggiuntivi ", verifica che il Cloud Object Storage componente aggiuntivo presenti uno stato di integrità " Normale ".

Abilitazione del componente aggiuntivo IBM Cloud Object Storage dalla CLI

Prima di iniziare: accedi al tuo cluster Red Hat OpenShift.

  1. Aggiorna il plug-in " container-service " alla versione più recente.
    ibmcloud update && ibmcloud plugin update container-service
    
  2. Elencare i componenti aggiuntivi e trovare la versione che si desidera installare.
    ibmcloud oc cluster addon versions
    
  3. Esaminare le opzioni aggiuntive.
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. Installare il componente aggiuntivo.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. Verificare l'installazione.
    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. Elenca le classi di archiviazione disponibili. Il driver supporta sia le classi di archiviazione regionali che quelle interregionali per i programmi di montaggio s3fs e 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
    

Limitazione della pianificazione dei pod del nodeserver

Per impostazione predefinita, i pod del driver COS CSI nodeserver vengono pianificati su tutti i nodi del cluster. È possibile utilizzare il parametro restrictNodeServerScheduling per limitare la pianificazione dei pod del nodeserver esclusivamente ai nodi contrassegnati con l'etichetta cos.csi.ibm.io/csi-node=true``.

È possibile configurare l' restrictNodeServerScheduling e al momento dell'attivazione del componente aggiuntivo oppure aggiornarla in un secondo momento applicando una patch all' ConfigMap.

  • Per impostare restrictNodeServerScheduling all'attivazione del componente aggiuntivo, includere il flag --param nel comando di abilitazione.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • Per aggiornare restrictNodeServerScheduling dopo che l'estensione è già stata abilitata, segui questi passaggi.
  1. Elenca i nodi del tuo cluster e stabilisci dove desideri che vengano eseguiti i pod del driver COS.
    oc get nodes
    
    Output di esempio
    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. Verificare che i pod di nodeserver siano attualmente in esecuzione su tutti i nodi.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Output di esempio
    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. Contrassegna i nodi su cui desideri che vengano pianificati i pod di nodeserver.
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    Output di esempio
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. Per attivare la restrizione, aggiorna il file ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    Output di esempio
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. Verificare che i pod dei nodi server vengano pianificati esclusivamente su nodi contrassegnati.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Output di esempio
    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 opzioni
Impostazione Modalità di funzionamento
restrictNodeServerScheduling: "false" (predefinito) I pod di Nodeserver vengono pianificati su tutti i nodi.
restrictNodeServerScheduling: "true" I pod dei server di nodo vengono pianificati solo sui nodi contrassegnati con l'etichetta " cos.csi.ibm.io/csi-node=true".

Impostazione dei volumi massimi per nodo

Per impostazione predefinita, il driver COS CSI non limita il numero di volumi che possono essere montati su un singolo nodo. È possibile utilizzare il parametro maxVolumesPerNode per impostare il numero massimo di volumi per nodo.

È possibile configurare l' maxVolumesPerNode e al momento dell'attivazione del componente aggiuntivo oppure aggiornarla in un secondo momento applicando una patch all' ConfigMap.

  • Per impostare maxVolumesPerNode all'attivazione del componente aggiuntivo, includere il flag --param nel comando di abilitazione.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • Per aggiornare maxVolumesPerNode dopo che l'add-on è già stato abilitato, applicare la patch all'add-on gestito ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    Output di esempio
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode opzioni
Impostazione Modalità di funzionamento
maxVolumesPerNode: "0" (predefinito) Non vi è alcun limite al numero di volumi che possono essere montati per ogni nodo.
maxVolumesPerNode: "VALUE" Limita il numero di volumi che possono essere montati su un singolo nodo al valore specificato.

Distribuzione di un'applicazione che utilizza IBM Cloud Object Storage

Creare un segreto Kubernetes che contenga le credenziali COS.

  1. Accedi al tuo cluster Red Hat OpenShift.

  2. Salvate la seguente configurazione in un file chiamato secret.yaml. Fornire credenziali IAM o HMAC, ma non entrambe.

    • Per le credenziali IAM, utilizzare una combinazione di apiKey e serviceId da Object Storage.
    • Per le credenziali HMAC, utilizzare accessKey e secretKey da 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
    È possibile personalizzare le opzioni di montaggio per s3fs o rclone modificando mountOptions nel proprio segreto. Allineare le opzioni specificate con la classe di archiviazione utilizzata dal PVC. Per rivedere i valori predefiniti di una classe di archiviazione, eseguire oc describe storageclass <storageclass_name> o oc describe storageclass <storageclass_name>. Per ulteriori informazioni, vedere le opzioni di montaggio s3fs e le opzioni di montaggio rclone.

    Attualmente, il componente aggiuntivo è abilitato a supportare un insieme fisso di opzioni di montaggio con una corretta convalida per ogni opzione di montaggio. Se si desidera utilizzare altre opzioni di montaggio non presenti nell'elenco di convalida, contattare l'assistenza per abilitarle.

  3. Codificare tutti i parametri dei dati segreti in base64.

    echo -n "<value>" | base64
    
  4. Aggiornare secret.yaml con i valori codificati in base64.

  5. Crea il segreto.

    oc apply -f secret.yaml
    

Creare un PVC

È possibile utilizzare un unico segreto per più PVC o un segreto per PVC.

È possibile gestire questo comportamento utilizzando le seguenti annotazioni nel PVC yaml. Queste annotazioni aiutano il driver a mappare il PVC sul segreto corretto.

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

Assicurati che "secret", "PVC" e "pod" si trovino tutti nello stesso namespace

Esempio di PVC per una mappatura da segreto a PVC 1-to-1 assegnando al PVC lo stesso nome del segreto creato in precedenza.

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.

Esempio di PVC per l'utilizzo di 1 segreto per molti PVC utilizzando le annotazioni per specificare il segreto.

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. Scegliete uno degli esempi precedenti e personalizzatelo per il vostro caso d'uso. Per un elenco delle classi di archiviazione, vedere il riferimento alle classi di archiviazione.

  2. Crea la PVC.

    oc apply -f pvc.yaml
    

Crea una distribuzione

  1. Salvate la seguente configurazione in un file chiamato 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. Crea la distribuzione.

    oc apply -f dep.yaml
    

Disabilitazione del componente aggiuntivo IBM Cloud Object Storage

I segreti, i PVC e le distribuzioni esistenti non vengono cancellati dalla disattivazione del componente aggiuntivo o dagli aggiornamenti della patch. Non ci sono interruzioni nei carichi di lavoro esistenti dei clienti.

  1. Eseguire il seguente comando per disattivare il componente aggiuntivo.
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    Output di esempio
    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. Verificare che il componente aggiuntivo sia stato rimosso.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

Migrazione dal plug-in Helm al componente aggiuntivo per cluster

  1. Accedi al tuo cluster Red Hat OpenShift.

  2. Ottenete i dettagli dei vostri PVC e selezionatene uno da migrare.

    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
    

    Output di esempio

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. Descrivere il PVC e ottenere il nome del secchio.

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

    Output di esempio

    ibm.io/bucket: test-s3
    
  4. Ricreate il vostro segreto con il nome del secchio incluso.

    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. Trovare la classe di archiviazione utilizzata nel PVC.

    oc describe pvc <pvc_name> | grep StorageClass:
    

    Esempio di comando per un PVC chiamato test-s3.

    oc describe pvc test-s3 | grep StorageClass:
    

    Output di esempio

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. Esaminare le nuove classi di archiviazione disponibili con il componente aggiuntivo e selezionare una classe sostitutiva.

    • Se si è utilizzata una classe flex, scegliere una delle nuove classi smart.
    • Se avete usato una classe standard, scegliete una delle nuove classi standard.
    • Le classi cold e vault non sono più disponibili con il componente aggiuntivo; scegliete invece una classe smart o standard.
  7. Esaminate i dettagli del vostro PVC.

    oc describe pvc test-s3
    

    Output di esempio

    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. Creare un PVC sostitutivo che utilizzi una nuova classe di archiviazione e faccia riferimento al segreto creato in precedenza.

    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. Verificare che il PVC sia Bound.

    oc get pvc
    
  10. Scopri i dettagli della tua app.

    oc get pods
    
  11. Riducete la vostra applicazione a zero.

    kubectl scale deployment --replicas=0 my-app
    
  12. Creare un'installazione sostitutiva che faccia riferimento al PVC creato nel passaggio precedente.

  13. Dopo che la nuova installazione client è in esecuzione, è possibile eliminare la vecchia installazione client.

  14. Ripeti questi passaggi per ogni PVC che desideri migrare.

IBM Cloud Object Storage classi di archiviazione aggiuntive al cluster

Il componente aggiuntivo per cluster IBM Cloud Object Storage fornisce classi di archiviazione per i montaggi s3fs e rclone. Scegli una classe di archiviazione adatta ai tuoi requisiti di accesso ai dati. La classe di archiviazione determina la classe del bucket, il criterio di recupero e il comportamento di montaggio predefinito per il bucket creato per il carico di lavoro.

Standard
Utilizzare per i dati caldi a cui si accede di frequente, come i dati per le applicazioni web o mobili.
Intelligenza
Da utilizzare per carichi di lavoro e dati che non seguono un modello di utilizzo specifico o quando il modello di utilizzo è difficile da prevedere.
Classi di archiviazione aggiuntive al cluster COS
Nome Classe Secchiello Resilienza Montatore Politica di riacquisizione Modalità di binding
ibm-object-storage-smart-cross-region-rclone Intelligenza Interregionale rclone Elimina Immediato
ibm-object-storage-smart-cross-region-rclone-retain Intelligenza Interregionale rclone Conserva Immediato
ibm-object-storage-smart-cross-region-s3fs Intelligenza Interregionale s3fs Elimina Immediato
ibm-object-storage-smart-cross-region-s3fs-retain Intelligenza Interregionale s3fs Conserva Immediato
ibm-object-storage-smart-rclone Intelligenza Regionale rclone Elimina Immediato
ibm-object-storage-smart-rclone-retain Intelligenza Regionale rclone Conserva Immediato
ibm-object-storage-smart-s3fs Intelligenza Regionale s3fs Elimina Immediato
ibm-object-storage-smart-s3fs-retain Intelligenza Regionale s3fs Conserva Immediato
ibm-object-storage-standard-cross-region-rclone Standard Interregionale rclone Elimina Immediato
ibm-object-storage-standard-interregionale-rclone-retain Standard Interregionale rclone Conserva Immediato
ibm-object-storage-standard-cross-region-s3fs Standard Interregionale s3fs Elimina Immediato
ibm-object-storage-standard-cross-region-s3fs-retain Standard Interregionale s3fs Conserva Immediato
ibm-object-storage-standard-rclone Standard Regionale rclone Elimina Immediato
ibm-object-storage-standard-rclone-retain Standard Regionale rclone Conserva Immediato
ibm-object-storage-standard-s3fs Standard Regionale s3fs Elimina Immediato
ibm-object-storage-standard-s3fs-retain Standard Regionale s3fs Conserva Immediato

Per esaminare la configurazione dettagliata dei bucket per una classe di archiviazione, eseguire oc describe storageclass <storageclass_name> o oc describe storageclass <storageclass_name>.

Parametri classe di storage

Tutte le classi di archiviazione aggiuntive al cluster includono i seguenti parametri fondamentali.

Parametri fondamentali per le classi di archiviazione aggiuntive al cluster COS
Parametro Descrizione
client Identifica il tipo di client utilizzato dal driver. Le classi di archiviazione aggiuntive utilizzano awss3.
cosEndpoint Definisce l'endpoint IBM Cloud Object Storage per la regione del bucket.
csi.storage.k8s.io/node-publish-secret-name Fa riferimento al nome del segreto che contiene le credenziali di IBM Cloud Object Storage.
csi.storage.k8s.io/node-publish-secret-namespace Fa riferimento allo spazio dei nomi del segreto che contiene le credenziali di IBM Cloud Object Storage.
locationConstraint Definisce la classe e la regione del secchio, ad esempio au-syd-smart o au-syd-standard.
mounter Specifica se la classe di archiviazione utilizza il mounter s3fs o rclone.

Opzioni di montaggio predefinite della classe di archiviazione s3fs

Le classi di archiviazione di s3fs utilizzano le seguenti opzioni di montaggio predefinite.

Opzioni di montaggio predefinite per le classi di archiviazione “ s3fs ” del componente aggiuntivo COS
Opzione di montaggio Descrizione
multipart_size=52 Imposta la dimensione della parte, in MB, per ogni richiesta multipart.
multireq_max=20 Imposta il numero massimo di richieste parallele per gli oggetti dell'elenco.
max_dirty_data=5120 Esegue il flussaggio dei dati sporchi su S3 dopo un numero specificato di MB scritti. Il valore minimo supportato è 50. Un valore di -1 disabilita questo comportamento.
parallel_count=20 Imposta il numero di richieste parallele per il caricamento di oggetti di grandi dimensioni. s3fs carica oggetti di grandi dimensioni utilizzando richieste multipart e invia le richieste in parallelo.
max_stat_cache_size=100000 Imposta il numero massimo di voci nella cache delle statistiche e nella cache dei collegamenti simbolici.
retries=5 Imposta il numero di volte in cui riprovare una transazione S3 fallita.
kernel_cache Abilita la cache del buffer del kernel per il punto di montaggio del volume. I dati letti da IBM Cloud Object Storage vengono memorizzati nella cache del kernel per garantire un accesso più rapido alla lettura. La cache del kernel è abilitata per le classi di archiviazione standard e smart s3fs.

Opzioni di montaggio predefinite della classe di archiviazione rclone

Le classi di archiviazione di rclone utilizzano le seguenti opzioni di montaggio predefinite.

Opzioni di montaggio predefinite per le classi di archiviazione rclone dell'add-on COS
Opzione di montaggio Descrizione
acl=private Assicura che gli oggetti caricati non siano accessibili pubblicamente.
bucket_acl=private Imposta l'ACL predefinita per i bucket creati da rclone a private.
upload_cutoff=100Mi Carica file di dimensioni superiori a 100 MiB utilizzando il caricamento multipart. I file più piccoli vengono caricati in un'unica richiesta.
chunk_size=16Mi Imposta la dimensione di ciascuna parte in un caricamento multipart.
max_upload_parts=1000 Imposta il numero massimo di parti per il caricamento multipart e, indirettamente, limita la dimensione massima del file supportata con il sito chunk_size. Con chunk_size=16Mi, la dimensione massima del file è 16 GiB.
upload_concurrency=8 Imposta il numero di parti caricate in parallelo durante un caricamento multipart.