クラスタアドオンIBM Cloud Object Storageのインストール

「 IBM Cloud Object Storage 」アドオンは、 IBM Cloud コンソールまたはCLIから有効にできます。

前提条件:

  • IBM Cloud Object Storage アドオンには、少なくとも 0.3 vCPU と 360 MB のメモリが必要です。
  • このアドオンは Red Hat CoreOS (RHCOS) および Ubuntu ワーカーノードで利用可能です。 クラスタにRHELノードとRHCOSノードの両方がある場合、アドオンはRHCOSノードにのみデプロイされます。
  • IBM Cloud Object Storage
  • オプションバケットのバージョニングを使用する予定がある場合、サービス認証情報は、バケット上でバケットのバージョニングを有効または無効にするための Manager または Writer 権限を持っていなければなりません。 詳細については、「 バージョン管理の始め方 」を参照してください。

バケットの作成と削除を理解する

  • PVCにバケツ名を指定することで、既存のバケツを利用することができます。
  • バケツ名を指定し、そのバケツが存在しない場合は、その名前のバケツが作成される。
  • バケツ名を指定しない場合は、temp-xxx という命名規則を持つバケツが作成される。
  • バケットは、ストレージクラスで定義された再生ポリシーに基づいて削除されます。
    • reclaimPolicy: Delete 設定されている場合、PVCが削除されるとバケットは削除される。
    • reclaimPolicy: Retain 設定すると、PVCが削除されてもバケットは保持される。

コンソールから「 IBM Cloud Object Storage 」アドオンを有効にする

  1. Red Hat OpenShift on IBM Cloud のクラスターダッシュボードから、アドオンを有効にしたいクラスターを選択します。
  2. アドオン 」セクションで、 Cloud Object Storage アドオンを見つけて、「 インストール 」をクリックします。
  3. アドオンをインストールする: Cloud Object Storage 」パネルで、「 バージョン 」ドロップダウンからバージョンを選択します。
  4. オプション:以下のパラメータを設定してください。
maxVolumesPerNode
1つのノードにマウントできる IBM Cloud Object Storage ボリュームの最大数を設定します。 デフォルト値は 0 であり、これは制限が適用されないことを意味します。
restrictNodeServerScheduling
true に設定すると、ノードサーバーのポッドが、 cos.csi.ibm.io/csi-node=true というラベルが付いたノード上でのみ実行されるように制限されます。 デフォルト値は false であり、これはノードサーバーのポッドがすべてのノードにスケジューリングされることを意味します。
  1. **「インストール」**をクリックします。 アドオンのデプロイが完了して利用可能になるには数分かかる場合があります。
  2. インストールを検証します。 「 アドオン 」セクションで、 Cloud Object Storage アドオンのヘルス状態が「 正常 」と表示されていることを確認してください。

CLIから IBM Cloud Object Storage アドオンを有効にする

始める前に、Red Hat OpenShift クラスターにアクセスします。

  1. container-service プラグインを最新バージョンに更新してください。
    ibmcloud update && ibmcloud plugin update container-service
    
  2. アドオンをリストアップし、インストールしたいバージョンを見つける。
    ibmcloud oc cluster addon versions
    
  3. アドオンのオプションを確認します。
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. アドオンをインストールします。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. インストールを検証します。
    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. 利用可能なストレージクラスを一覧表示してください。 このドライバは、 s3fs および 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
    

ノードサーバーのポッドスケジューリングの制限

デフォルトでは、COS CSI ドライバーのノードサーバー ポッドは、クラスター内のすべてのノードにスケジューリングされます。 restrictNodeServerScheduling パラメータを使用すると、ノードサーバーのポッドのスケジューリングを、 cos.csi.ibm.io/csi-node=true というラベルが付けられたノードのみに制限することができます。

restrictNodeServerScheduling の設定は、アドオンを有効にする際に設定するか、後で ConfigMap にパッチを適用して更新することができます。

  • アドオンを有効にする際に restrictNodeServerScheduling を設定するには、有効化コマンドに --param フラグを含めてください。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • アドオンがすでに有効になっている状態で「 restrictNodeServerScheduling 」を更新するには、以下の手順に従ってください。
  1. クラスタ内のノードを一覧表示し、COS ドライバーのポッドを実行する場所を決定してください。
    oc get nodes
    
    出力例
    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. すべてのノードで、nodeserver ポッドが現在実行中であることを確認してください。
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    出力例
    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. ノードサーバーのポッドをスケジューリングしたいノードにラベルを付けます。
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    出力例
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. ConfigMap を更新して、この制限を有効にしてください。
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    出力例
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. ノードサーバーのポッドが、ラベルが設定されたノードにのみスケジューリングされることを確認してください。
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    出力例
    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 オプション
設定 動作
restrictNodeServerScheduling: "false" (デフォルト) Nodeserver ポッドは、すべてのノードにスケジューリングされます。
restrictNodeServerScheduling: "true" Nodeserver ポッドは、 cos.csi.ibm.io/csi-node=true というラベルが付けられたノードにのみスケジューリングされます。

ノードごとの最大ボリューム数の設定

デフォルトでは、COS CSI ドライバーは、単一のノードにマウントできるボリュームの数に制限を設けていません。 maxVolumesPerNode パラメータを使用すると、ノードあたりのボリュームの最大数を設定できます。

maxVolumesPerNode の設定は、アドオンを有効にする際に設定するか、後で ConfigMap にパッチを適用して更新することができます。

  • アドオンを有効にする際に maxVolumesPerNode を設定するには、有効化コマンドに --param フラグを含めてください。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • アドオンがすでに有効になっている状態で「 maxVolumesPerNode 」を更新するには、管理対象アドオン「 ConfigMap 」にパッチを適用してください。
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    出力例
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode オプション
設定 動作
maxVolumesPerNode: "0" (デフォルト) ノードごとにマウントできるボリュームの数に制限はありません。
maxVolumesPerNode: "VALUE" 1つのノードにマウントできるボリュームの数を、指定された値に制限します。

以下を使用するアプリのデプロイ IBM Cloud Object Storage

COSの認証情報を含む Kubernetes のシークレットを作成します。

  1. Red Hat OpenShift クラスターにアクセスします

  2. 以下のコンフィギュレーションを、secret.yaml. IAM 認証情報または HMAC のいずれかを提供するが、両方は提供しない。

    • IAM クレデンシャルには、 Object Storage の apiKeyserviceId を組み合わせて使用する。
    • HMAC クレデンシャルには、 Object Storage から accessKeysecretKey を使用する。
    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
    シークレットの mountOptions を編集することで、 s3fs または rclone のマウントオプションをカスタマイズすることができます。 指定するオプションを、PVCが使用するストレージ・クラスに合わせます。 ストレージ・クラスのデフォルト値を確認するには、 oc describe storageclass <storageclass_name> または oc describe storageclass <storageclass_name> を実行します。 詳細については、 s3fs マウント・オプションと rclone マウント・ オプションを参照のこと。

    現在、アドオンはマウントオプションごとに適切な検証を行い、固定されたマウントオプションのセットをサポートするように有効になっています。 検証リストにない他のマウントオプションを使用したい場合は、サポートに連絡してそれらのオプションを有効にしてください。

  3. すべての秘密データ・パラメーターを base64 にエンコードする。

    echo -n "<value>" | base64
    
  4. base64 でエンコードされた値で secret.yaml を更新する。

  5. シークレットを作成します。

    oc apply -f secret.yaml
    

PVCの作成

複数のPVCにわたって単一のシークレットを使用することも、PVCごとに1つのシークレットを使用することもできます。

この動作は、PVC yamlで以下のアノテーションを使用することで管理できる。 これらの注釈は、ドライバーがPVCを正しいシークレットにマッピングするのに役立つ。

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

secret、PVC、およびポッドがすべて同じネームスペース内にあることを確認してください

例: 1-to-1 シークレットからPVCへのマッピングには、先に作成したシークレットと同じ名前をPVCに与えます。

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.

シークレットを指定するアノテーションを使用して、1つのシークレットを多数のPVCに使用する場合のPVCの例。

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. これまでの例から1つ選び、あなたの使用ケースに合わせてカスタマイズしてください。 ストレージ・クラスのリストについては、ストレージ・クラス・リファレンス を参照してください。

  2. PVC を作成します。

    oc apply -f pvc.yaml
    

デプロイメントを作成します

  1. 以下の設定を「 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. デプロイメントを作成します。

    oc apply -f dep.yaml
    

IBM Cloud Object Storageアドオンを無効にする

既存のシークレット、PVC、およびデプロイは、アドオンを無効にしたり、パッチを更新したりしても削除されません。 既存のお客様ワークロードに支障をきたすことはない。

  1. アドオンを無効にするには、次のコマンドを実行してください。
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    出力例
    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. アドオンが削除されたことを確認してください。
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

Helmプラグインからクラスタアドオンへの移行

  1. Red Hat OpenShift クラスターにアクセスします

  2. PVCの詳細を取得し、移行するPVCを選択します。

    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
    

    出力例

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. PVCについて説明し、バケツ名を取得する。

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

    出力例

    ibm.io/bucket: test-s3
    
  4. バケツの名前も含めて、あなたの秘密を再現してください。

    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. PVCで使用されているストレージクラスを検索する。

    oc describe pvc <pvc_name> | grep StorageClass:
    

    test-s3 PVCに対するコマンド例。

    oc describe pvc test-s3 | grep StorageClass:
    

    出力例

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. アドオンで使用できる 新しいストレージクラスを確認 し、置換クラスを選択します。

    • flex を使用していた場合は、新しい smart クラスのいずれかを選択してください。
    • standard を使用している場合は、新しい standard クラスのいずれかを選択してください。
    • coldvault のクラスはアドオンでは利用できなくなりました。代わりに smart または standard のクラスを選択してください。
  7. PVCの詳細を確認する。

    oc describe pvc test-s3
    

    出力例

    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. 新しいストレージ・クラスを使用し、以前に作成したシークレットを参照する置換PVCを作成します。

    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. PVCが Bound であることを確認する。

    oc get pvc
    
  10. アプリの詳細を確認してください。

    oc get pods
    
  11. アプリをゼロまで縮小する。

    kubectl scale deployment --replicas=0 my-app
    
  12. 前の手順で作成した PVC を参照する置換配置を作成します。

  13. 新しい配置が実行されたら、古い配置を削除できます。

  14. 移行したい各PVCについて、これらの手順を繰り返してください。

IBM Cloud Object Storageクラスタ・アドオン・ストレージクラス

IBM Cloud Object Storage クラスタ・アドオンは、 s3fs および rclone マウンタ用のストレージ・クラスを提供します。 データ・アクセス要件に合ったストレージ・クラスを選択します。 ストレージクラスは、ワークロード用に作成されたバケットのバケットクラス、リクレイムポリシー、デフォルトのマウント動作を決定します。

Standard
ウェブやモバイルアプリのデータなど、頻繁にアクセスするホットデータに使用する。
スマート
特定の使用パターンに従わないワークロードやデータ、あるいは使用パターンの予測が困難な場合に使用する。
COSクラスタ・アドオン・ストレージ・クラス
名前 バケット・クラス 回復力 マウンター 再利用ポリシー バインディング・モード
ibm-object-storage-smart-cross-region-rclone スマート 地域横断的 rclone の削除 即時
ibm-オブジェクト・ストレージ-スマート・クロス・リージョン-rclone-リテイン スマート 地域横断的 rclone 保持 即時
ibm-object-storage-smart-cross-region-s3fs スマート 地域横断的 s3fs の削除 即時
ibm-object-storage-smart-cross-region-s3fs-retain スマート 地域横断的 s3fs 保持 即時
IBMオブジェクトストレージスマートRクローン スマート リージョン rclone の削除 即時
IBMオブジェクトストレージスマートRクローン保持 スマート リージョン rclone 保持 即時
ibm-object-storage-smart-s3fs スマート リージョン s3fs の削除 即時
ibm-object-storage-smart-s3fs-retain スマート リージョン s3fs 保持 即時
ibm-object-storage-standard-cross-region-rclone Standard 地域横断的 rclone の削除 即時
ibm-object-storage-standard-cross-region-rclone-retain Standard 地域横断的 rclone 保持 即時
ibm-object-storage-standard-cross-region-s3fs Standard 地域横断的 s3fs の削除 即時
ibm-object-storage-standard-cross-region-s3fs-retain Standard 地域横断的 s3fs 保持 即時
IBM-オブジェクト-ストレージ-スタンダード-Rクローン Standard リージョン rclone の削除 即時
IBM-オブジェクト-ストレージ-スタンダード-Rclone-retain Standard リージョン rclone 保持 即時
ibm-object-storage-standard-s3fs Standard リージョン s3fs の削除 即時
ibm-object-storage-standard-s3fs-retain Standard リージョン s3fs 保持 即時

ストレージクラスの詳細なバケット設定を確認するには、 oc describe storageclass <storageclass_name> または oc describe storageclass <storageclass_name> を実行します。

ストレージ・クラスのパラメーター

すべてのクラスタ・アドオン・ストレージ・クラスには、以下のコア・パラメータが含まれる。

COSクラスタ・アドオン・ストレージ・クラスのコア・パラメータ
パラメーター 説明
client ドライバが使用するクライアントタイプを識別する。 アドオン・ストレージ・クラスは awss3 を使用する。
cosEndpoint バケツ領域の IBM Cloud Object Storage エンドポイントを定義します。
csi.storage.k8s.io/node-publish-secret-name IBM Cloud Object Storage 認証情報を含む秘密の名前を参照します。
csi.storage.k8s.io/node-publish-secret-namespace IBM Cloud Object Storage 認証情報を含む秘密の名前空間を参照します。
locationConstraint au-syd-smartau-syd-standard のように、バケツのクラスと地域を定義する。
mounter ストレージ・クラスが s3fs または rclone のどちらのマウンタを使用するかを指定します。

デフォルトの s3fs ストレージクラスのマウントオプション

s3fs ストレージ・クラスは、以下のデフォルト・マウント・オプションを使用する。

COSアドオンの「 s3fs 」ストレージクラスのデフォルトのマウントオプション
マウントオプション 説明
multipart_size=52 各マルチパートリクエストのパートサイズをMB単位で設定する。
multireq_max=20 オブジェクトのリストに対する並列要求の最大数を設定します。
max_dirty_data=5120 指定されたMB数が書き込まれた後、ダーティデータを S3 にフラッシュする。 サポートされる最小値は 50 です。 -1 を指定すると、この動作が無効になります。
parallel_count=20 ラージオブジェクトをアップロードする際の並列リクエスト数を設定します。 s3fs 、マルチパートリクエストを使用してラージオブジェクトをアップロードし、リクエストを並列送信します。
max_stat_cache_size=100000 スタット・キャッシュとシンボリック・リンク・キャッシュの最大エントリ数を設定する。
retries=5 失敗した S3 トランザクションを再試行する回数を設定する。
kernel_cache ボリュームのマウントポイントに対して、カーネルバッファキャッシュを有効にします。 IBM Cloud Object Storage から読み出されたデータは、カーネルキャッシュに保存され、より高速な読み取りアクセスを実現する。 カーネルキャッシュは、標準およびスマート s3fs ストレージクラスで有効です。

デフォルトの rclone ストレージクラスのマウントオプション

rclone ストレージ・クラスは、以下のデフォルト・マウント・オプションを使用する。

COS アドオンの rclone ストレージクラスに対するデフォルトのマウントオプション
マウントオプション 説明
acl=private アップロードされたオブジェクトが一般にアクセスできないようにする。
bucket_acl=private rclone が作成するバケットのデフォルト ACL を private に設定する。
upload_cutoff=100Mi マルチパートアップロードを使用して、 100 MiB より大きなファイルをアップロードします。 小さなファイルは1回のリクエストでアップロードされます。
chunk_size=16Mi マルチパートアップロードの各パートのサイズを設定します。
max_upload_parts=1000 マルチパートアップロードあたりの最大パート数を設定し、設定された chunk_size で間接的にサポートされる最大ファイルサイズの上限を設定します。 chunk_size=16Mi の場合、最大ファイルサイズは 16 GiB
upload_concurrency=8 マルチパートアップロード中に並行してアップロードされるパートの数を設定します。