Installation du module complémentaire de cluster IBM Cloud Object Storage

Vous pouvez activer le module complémentaire « IBM Cloud Object Storage » depuis la console IBM Cloud ou via l'interface de ligne de commande (CLI).

Prérequis :

  • Le module complémentaire IBM Cloud Object Storage nécessite au moins 0.3 vCPU et 360 Mo de mémoire.
  • Le module complémentaire est disponible pour les nœuds de travail Red Hat CoreOS (RHCOS) et Ubuntu. Si votre cluster comporte à la fois des nœuds RHEL et RHCOS, le module complémentaire n'est déployé que sur les nœuds RHCOS.
  • Créez une instance IBM Cloud Object Storage.
  • Facultatif Si vous prévoyez d'utiliser le versionnement des seaux, vos identifiants de service doivent disposer des autorisations Manager ou Writer pour activer ou désactiver le versionnement des seaux sur le seau. Pour plus d'informations, consultez la section « Premiers pas avec la gestion des versions ».

Comprendre la création et la suppression des seaux

  • Vous pouvez utiliser un seau existant en spécifiant le nom du seau dans votre PVC.
  • Si vous fournissez un nom de seau et que ce seau n'existe pas, un seau portant ce nom est créé.
  • Si vous ne fournissez pas de nom de godet, un godet avec la convention de dénomination temp-xxx est créé.
  • Les bacs sont supprimés en fonction de la politique de récupération définie dans votre classe de stockage.
    • Si reclaimPolicy: Delete est défini, le seau est supprimé lorsque le PVC est supprimé.
    • Si reclaimPolicy: Retain est défini, le seau est conservé même après la suppression du PVC.

Activation du module complémentaire « IBM Cloud Object Storage » depuis la console

  1. Dans le tableau de bord des clusters d' Red Hat OpenShift on IBM Cloud, sélectionnez le cluster sur lequel vous souhaitez activer le module complémentaire.
  2. Dans la section « Extensions », repérez l'Cloud Object Storage module complémentaire et cliquez sur « Installer ».
  3. Dans le panneau « Installer l'extension : Cloud Object Storage », sélectionnez une version dans le menu déroulant « Version ».
  4. Facultatif : configurez les paramètres suivants.
maxVolumesPerNode
Définissez le nombre maximal de volumes « IBM Cloud Object Storage » pouvant être montés sur un même nœud. La valeur par défaut est « 0 », ce qui signifie qu'aucune limite n'est appliquée.
restrictNodeServerScheduling
Définissez la valeur sur « true » pour limiter l'exécution des pods du serveur de nœuds aux nœuds portant l'étiquette « cos.csi.ibm.io/csi-node=true ». La valeur par défaut est « false », ce qui signifie que les pods « nodeserver » sont planifiés sur tous les nœuds.
  1. Cliquez sur Install. Le déploiement du module complémentaire peut durer plusieurs minutes, ce dernier est ensuite prêt à être utilisé.
  2. Vérification de l'installation. Dans la section « Modules complémentaires », vérifiez que le Cloud Object Storage module affiche un état de santé « Normal ».

Activation du module complémentaire IBM Cloud Object Storage à partir du CLI

Avant de commencer : accédez à votre cluster Red Hat OpenShift.

  1. Mettez à jour le plug-in « container-service » vers la version la plus récente.
    ibmcloud update && ibmcloud plugin update container-service
    
  2. Listez les modules complémentaires et trouvez la version que vous souhaitez installer.
    ibmcloud oc cluster addon versions
    
  3. Examinez les options du module complémentaire.
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. Installer le module complémentaire.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. Vérification de l'installation.
    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. Énumérez les classes de stockage disponibles. Le pilote prend en charge les classes de stockage régionales et interrégionales pour les montages « s3fs » et « 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
    

Restriction de la planification des pods « nodeserver »

Par défaut, les pods « nodeserver » du pilote COS CSI sont planifiés sur tous les nœuds du cluster. Vous pouvez utiliser le paramètre restrictNodeServerScheduling pour limiter la planification des pods du serveur de nœuds aux seuls nœuds portant le libellé « cos.csi.ibm.io/csi-node=true ».

Vous pouvez configurer restrictNodeServerScheduling lors de l'activation du module complémentaire, ou le mettre à jour ultérieurement en appliquant un correctif à l' ConfigMap.

  • Pour définir la variable d' restrictNodeServerScheduling ation lors de l'activation du module complémentaire, incluez l'indicateur « --param » dans la commande d'activation.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • Pour mettre à jour « restrictNodeServerScheduling » une fois que l'extension est déjà activée, procédez comme suit.
  1. Répertoriez les nœuds de votre cluster et déterminez où vous souhaitez que les pods du pilote COS s'exécutent.
    oc get nodes
    
    Exemple de sortie
    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. Vérifiez que les pods « nodeserver » sont bien en cours d'exécution sur tous les nœuds.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Exemple de sortie
    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. Attribuez une étiquette aux nœuds sur lesquels vous souhaitez que les pods « nodeserver » soient planifiés.
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    Exemple de sortie
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. Pour activer cette restriction, mettez à jour le fichier « ConfigMap ».
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    Exemple de sortie
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. Vérifiez que les pods « nodeserver » ne sont planifiés que sur des nœuds étiquetés.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Exemple de sortie
    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 options
Paramètre Comportement
restrictNodeServerScheduling: "false" (par défaut) Les pods « nodeserver » sont planifiés sur tous les nœuds.
restrictNodeServerScheduling: "true" Les pods « nodeserver » sont planifiés uniquement sur les nœuds portant l'étiquette « cos.csi.ibm.io/csi-node=true ».

Définition du nombre maximal de volumes par nœud

Par défaut, le pilote COS CSI ne limite pas le nombre de volumes pouvant être montés sur un même nœud. Vous pouvez utiliser le paramètre « maxVolumesPerNode » pour définir le nombre maximal de volumes par nœud.

Vous pouvez configurer maxVolumesPerNode lors de l'activation du module complémentaire, ou le mettre à jour ultérieurement en appliquant un correctif à l' ConfigMap.

  • Pour définir la variable d' maxVolumesPerNode ation lors de l'activation du module complémentaire, incluez l'indicateur « --param » dans la commande d'activation.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • Pour mettre à jour maxVolumesPerNode une fois que l'extension est déjà activée, appliquez le correctif à l'extension gérée ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    Exemple de sortie
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode options
Paramètre Comportement
maxVolumesPerNode: "0" (par défaut) Il n'y a pas de limite quant au nombre de volumes pouvant être montés par nœud.
maxVolumesPerNode: "VALUE" Limite à la valeur spécifiée le nombre de volumes pouvant être montés sur un même nœud.

Déploiement d'une application qui utilise IBM Cloud Object Storage

Créez un secret « Kubernetes » contenant vos identifiants COS.

  1. Accédez à votre cluster Red Hat OpenShift.

  2. Enregistrez la configuration suivante dans un fichier appelé secret.yaml. Fournir soit des informations d'identification IAM, soit des informations HMAC, mais pas les deux.

    • Pour les identifiants IAM, utilisez une combinaison de apiKey et serviceId à partir de Object Storage.
    • Pour les identifiants HMAC, utilisez accessKey et secretKey à partir 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
    Vous pouvez personnaliser les options de montage pour s3fs ou rclone en modifiant mountOptions dans votre secret. Alignez les options que vous spécifiez avec la classe de stockage utilisée par votre PVC. Pour revoir les valeurs par défaut d'une classe de stockage, exécutez oc describe storageclass <storageclass_name> ou oc describe storageclass <storageclass_name>. Pour plus d'informations, voir les options de montage s3fs et rclone.

    Actuellement, le module complémentaire est activé pour prendre en charge un ensemble fixe d'options de montage avec une validation appropriée pour chaque option de montage. Si vous souhaitez utiliser d'autres options de montage qui ne figurent pas dans la liste de validation, contactez le service d'assistance pour activer ces options.

  3. Coder tous les paramètres des données secrètes sur base64.

    echo -n "<value>" | base64
    
  4. Mettre à jour le site secret.yaml avec les valeurs encodées de base64.

  5. Créez le secret.

    oc apply -f secret.yaml
    

Créer un PVC

Vous pouvez utiliser un seul secret pour plusieurs PVC ou un secret par PVC.

Vous pouvez gérer ce comportement en utilisant les annotations suivantes dans le PVC yaml. Ces annotations aident le conducteur à associer le PVC au bon secret.

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

Assurez-vous que votre secret, votre PVC et vos pods se trouvent tous dans le même espace de noms.

Exemple PVC pour un 1-to-1 secret to PVC mapping en donnant à votre PVC le même nom que le secret que vous avez créé précédemment.

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.

Exemple de PVC pour l'utilisation d'un secret pour plusieurs PVC en utilisant des annotations pour spécifier le secret.

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. Choisissez l'un des exemples précédents et adaptez-le à votre cas d'utilisation. Pour une liste des classes de stockage, voir la référence des classes de stockage.

  2. Créez le PVC (circuit virtuel permanent).

    oc apply -f pvc.yaml
    

Créer un déploiement

  1. Enregistrez la configuration suivante dans un fichier nommé « 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. Créez le déploiement.

    oc apply -f dep.yaml
    

Désactivation du module complémentaire IBM Cloud Object Storage

Les secrets, les PVC et les déploiements existants ne sont pas supprimés par la désactivation du module complémentaire ou par les mises à jour des correctifs. Il n'y a pas de perturbation des charges de travail existantes des clients.

  1. Exécutez la commande suivante pour désactiver le module complémentaire.
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    Exemple de sortie
    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. Vérifiez que l'extension a bien été supprimée.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

Migration du plug-in Helm vers le module complémentaire cluster

  1. Accédez à votre cluster Red Hat OpenShift.

  2. Obtenez les détails de vos PVC et sélectionnez-en un à migrer.

    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
    

    Exemple de sortie

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. Décrire le PVC et obtenir le nom du seau.

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

    Exemple de sortie

    ibm.io/bucket: test-s3
    
  4. Recréez votre secret avec le nom du seau inclus.

    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. Recherchez la classe de stockage utilisée dans votre PVC.

    oc describe pvc <pvc_name> | grep StorageClass:
    

    Exemple de commande pour un PVC appelé test-s3.

    oc describe pvc test-s3 | grep StorageClass:
    

    Exemple de sortie

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. Examinez les nouvelles classes de stockage disponibles avec le module complémentaire et sélectionnez une classe de remplacement.

    • Si vous avez utilisé une classe flex, choisissez l'une des nouvelles classes smart
    • Si vous avez utilisé une classe standard, choisissez l'une des nouvelles classes standard
    • Les classes cold et vault ne sont plus disponibles avec le module complémentaire ; choisissez une classe smart ou standard à la place.
  7. Examinez les détails de votre PVC.

    oc describe pvc test-s3
    

    Exemple de sortie

    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. Créez un PVC de remplacement qui utilise une nouvelle classe de stockage et fait référence au secret que vous avez créé précédemment.

    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. Vérifier que le PVC est Bound.

    oc get pvc
    
  10. Consultez les informations relatives à votre application.

    oc get pods
    
  11. Réduisez votre application à zéro.

    kubectl scale deployment --replicas=0 my-app
    
  12. Créez un déploiement de remplacement qui fait référence au PVC que vous avez créé à l'étape précédente.

  13. Une fois la nouvelle répartition en cours d'exécution, vous pouvez supprimer l'ancienne répartition.

  14. Répétez ces étapes pour chaque PVC que vous souhaitez migrer.

IBM Cloud Object Storage classes de stockage supplémentaires pour les clusters

Le module complémentaire de cluster IBM Cloud Object Storage fournit des classes de stockage pour les supports s3fs et rclone. Sélectionnez une classe de stockage qui convient à vos exigences en matière d'accès aux données. La classe de stockage détermine la classe de bac, la politique de récupération et le comportement de montage par défaut du bac créé pour votre charge de travail.

standard
À utiliser pour les données chaudes auxquelles vous accédez fréquemment, telles que les données des applications web ou mobiles.
Intelligence
A utiliser pour les charges de travail et les données qui ne suivent pas un schéma d'utilisation spécifique, ou lorsque le schéma d'utilisation est difficile à prévoir.
Classes de stockage supplémentaires pour les clusters COS
Nom Classe de compartiment Résilience Monteur Stratégie de récupération Mode de liaison
ibm-stockage-objet-smart-inter-régional-rclone Intelligence Interrégional rclone Supprimer Immédiate
ibm-stockage-objet-smart-inter-régions-rclone-conservation Intelligence Interrégional rclone Conserver Immédiate
ibm-object-storage-smart-cross-region-s3fs Intelligence Interrégional s3fs Supprimer Immédiate
ibm-object-storage-smart-cross-region-s3fs-retain Intelligence Interrégional s3fs Conserver Immédiate
ibm-stockage-objet-smart-rclone Intelligence Régional rclone Supprimer Immédiate
ibm-stockage-objet-smart-rclone-conservation Intelligence Régional rclone Conserver Immédiate
ibm-object-storage-smart-s3fs Intelligence Régional s3fs Supprimer Immédiate
ibm-object-storage-smart-s3fs-retain Intelligence Régional s3fs Conserver Immédiate
ibm-stockage-objet-standard-inter-régions-rclone standard Interrégional rclone Supprimer Immédiate
ibm-stockage-objet-standard-inter-régions-rclone-conservation standard Interrégional rclone Conserver Immédiate
ibm-object-storage-standard-cross-region-s3fs standard Interrégional s3fs Supprimer Immédiate
ibm-object-storage-standard-cross-region-s3fs-retain standard Interrégional s3fs Conserver Immédiate
ibm-objet-stockage-standard-rclone standard Régional rclone Supprimer Immédiate
ibm-stockage-objet-standard-rclone-conservation standard Régional rclone Conserver Immédiate
ibm-object-storage-standard-s3fs standard Régional s3fs Supprimer Immédiate
ibm-object-storage-standard-s3fs-retain standard Régional s3fs Conserver Immédiate

Pour examiner la configuration détaillée des seaux d'une classe de stockage, exécutez oc describe storageclass <storageclass_name> ou oc describe storageclass <storageclass_name>.

Paramètres de classe de stockage

Toutes les classes de stockage complémentaires pour clusters comprennent les paramètres de base suivants.

Paramètres de base pour les classes de stockage complémentaires des clusters COS
Paramètre Description
client Identifie le type de client utilisé par le pilote. Les classes de stockage supplémentaires utilisent awss3.
cosEndpoint Définit le point d'arrivée IBM Cloud Object Storage pour la région du seau.
csi.storage.k8s.io/node-publish-secret-name Fait référence au nom du secret qui contient vos informations d'identification IBM Cloud Object Storage.
csi.storage.k8s.io/node-publish-secret-namespace Fait référence à l'espace de noms du secret qui contient vos informations d'identification IBM Cloud Object Storage.
locationConstraint Définit la classe et la région du seau, par exemple au-syd-smart ou au-syd-standard.
mounter Indique si la classe de stockage utilise le monteur s3fs ou rclone.

Options de montage par défaut de la classe de stockage s3fs

Les classes de stockage s3fs utilisent les options de montage par défaut suivantes.

Options de montage par défaut pour les classes de stockage « s3fs » de l'extension COS
Option de montage Description
multipart_size=52 Définit la taille de la partie, en Mo, pour chaque demande multipartite.
multireq_max=20 Définit le nombre maximal de requêtes parallèles pour l'établissement de listes d'objets.
max_dirty_data=5120 Vide les données sales sur S3 après l'écriture d'un nombre spécifié de Mo. La valeur minimale supportée est 50. Une valeur de -1 désactive ce comportement.
parallel_count=20 Définit le nombre de requêtes parallèles pour le téléchargement d'objets volumineux. s3fs télécharge des objets volumineux en utilisant des requêtes multipartites et envoie des requêtes en parallèle.
max_stat_cache_size=100000 Définit le nombre maximal d'entrées dans le cache de statuts et le cache de liens symboliques.
retries=5 Définit le nombre de tentatives d'échec d'une transaction S3.
kernel_cache Active le cache tampon du noyau pour le point de montage du volume. Les données lues sur le site IBM Cloud Object Storage sont stockées dans le cache du noyau afin d'accélérer l'accès à la lecture. Le cache du noyau est activé pour les classes de stockage standard et smart s3fs.

Options de montage par défaut de la classe de stockage rclone

Les classes de stockage rclone utilisent les options de montage par défaut suivantes.

Options de montage par défaut pour les classes de stockage rclone de l'extension COS
Option de montage Description
acl=private Veille à ce que les objets téléchargés ne soient pas accessibles au public.
bucket_acl=private Définit l'ACL par défaut pour les buckets créés par rclone à private.
upload_cutoff=100Mi Chargement de fichiers plus grands que 100 MiB en utilisant le téléchargement en plusieurs parties. Les petits fichiers sont téléchargés en une seule fois.
chunk_size=16Mi Définit la taille de chaque partie dans un téléchargement en plusieurs parties.
max_upload_parts=1000 Définit le nombre maximal de pièces par téléchargement multipartite et plafonne indirectement la taille maximale du fichier pris en charge avec la valeur configurée chunk_size. Avec chunk_size=16Mi, la taille maximale du fichier est de 16 GiB.
upload_concurrency=8 Définit le nombre de pièces qui sont téléchargées en parallèle lors d'un téléchargement multipartite.