CSI ドライバ リファレンス

次のマニフェストは、Storage Class リソースと Persistent Volume リソースでサポートされている CSI ドライバ フィールドを示しています。

ストレージ クラス

次のマニフェストには、ストレージ クラスでサポートされているすべてのフィールドが含まれています。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: parallelstore-csi-sc
provisioner: parallelstore.csi.storage.gke.io
parameters:
  network: VPC_NETWORK_NAME # optional
  labels: KEY: VALUE # optional
  description: DESCRIPTION # optional
  reserved-ip-range: IP_RANGE_NAME # optional
  file-stripe-level: FILE_STRIPE_LEVEL # optional
  directory-stripe-level: DIRECTORY_STRIPE_LEVEL # optional
  mountLocality: MOUNT_LOCALITY # optional
  dfuseCPURequest: DFUSE_CPU_REQUEST # optional
  dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
  dfuseCPULimit: DFUSE_CPU_LIMIT # optional
  dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # optional
volumeBindingMode: VOLUME_BINDING_MODE # default is "immediate"; or "waitForFirstConsumer"
allowedTopologies: # optional
- matchLabelExpressions:
  - key: topology.gke.io/zone
    values:
    - ZONE
mountOptions:
  -  DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count

次のフィールドはすべて省略可能です。

  • network: Parallelstore インスタンスを作成する VPC ネットワーク。このプロパティが指定されていない場合、GKE クラスタのネットワークが使用されます。

    共有 VPC ネットワークに Parallelstore インスタンスを作成するには、ネットワークの完全な名前を指定する必要があります。次に例を示します。projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: このインスタンスにアタッチするユーザー指定の Key-Value ペア。

  • description: インスタンスの説明。2,048 文字以内にしてください。

  • reserved-ip-range: 割り振り済みの IP アドレス範囲の名前。指定しない場合は、すべての範囲が考慮されます。

  • file-stripe-level は、ファイル ストライプ設定を定義します。指定できる値は次のとおりです。

    • file-stripe-level-balanced
    • file-stripe-level-max
    • file-stripe-level-min

    詳細については、パフォーマンスに関する考慮事項をご覧ください。

  • directory-stripe-level は、ディレクトリのストライプレベルを定義します。指定できる値は次のとおりです。

    • directory-stripe-level-balanced
    • directory-stripe-level-max
    • directory-stripe-level-min

    詳細については、パフォーマンスに関する考慮事項をご覧ください。

  • mountLocality: 動的プロビジョニングにノードローカル マウントモードを有効にします。指定できる値は node または pod です。デフォルトは pod です。 node を指定する場合は、次のオプションも使用できます。

    • dfuseCPURequest: dfuse プロセスの CPU リクエスト。デフォルトは 250m です。
    • dfuseMemoryRequest: dfuse プロセスのメモリ リクエスト。デフォルトは 512Mi です。
    • dfuseCPULimit: dfuse プロセスの CPU の上限。デフォルトは未設定です。
    • dfuseMemoryLimit: dfuse プロセスのメモリ上限。デフォルトは 10Gi です。
  • allowedTopologies: Parallelstore インスタンスを作成するゾーンを指定します。このフィールドを指定しない場合、インスタンスは CSI ドライバのデプロイメントと同じゾーンに、immediate ボリューム バインディング モードで作成されます。

  • volumeBindingMode: トポロジ選択モードを指定します。immediate モードでは、allowedTopologies で指定された値が使用されます。waitForFirstConsumer モードでは、GKE Pod がスケジュールされるゾーンにトポロジが割り当てられます。これにより、ボリュームのプロビジョニングを待機している間に Pod がブロックされる可能性があります。

  • mountOptions: dfuse マウント オプションとカーネル パラメータ(read_ahead_kbmax_ratio など)を指定します。Parallelstore インスタンスが基盤のボリュームは、永続ボリュームの .spec.mountOptions フィールドでこれらの値を継承します。

    次の選択肢があります。

    • disable-caching: すべてのキャッシュ保存を無効にします。デフォルトでは、GKE で Parallelstore インスタンスをマウントすると、完全なキャッシング(ライトバック キャッシュを除く)が有効になります。
    • enable-wb-cache: ライトスルーではなくライトバック キャッシュを使用します。
    • thread-count: 使用するスレッドの数。この値は、FUSE スレッドの数とイベントキューの数の合計です。
    • eq-count: 使用するイベントキューの数。
    • read_ahead_kb: 先読みウィンドウのサイズ(キロバイト単位)。
    • max_ratio: 特定のデバイスが書き戻しキャッシュの指定した割合を超えて使用しないように制限できます。

    これらのオプションの詳細については、パフォーマンスに関する考慮事項をご覧ください。

永続ボリューム

次のマニフェストには、Persistent Volume でサポートされているすべてのフィールドが含まれています。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: parallelstore-pv
  annotations:
    pv.kubernetes.io/provisioned-by: parallelstore.csi.storage.gke.io
spec:
  storageClassName: parallelstore-csi-sc
  capacity:
    storage: INSTANCE_SIZE # 12Ti
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain # or "Delete"
  volumeMode: Filesystem
  mountOptions:
    - DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count, read_ahead_kb, max_ratio
  csi:
    driver: parallelstore.csi.storage.gke.io
    volumeHandle: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
    volumeAttributes:
      accessPoints: ACCESS_POINTS # comma-separated list of IP addresses
      network: VPC_NETWORK # optional
      mountLocality: MOUNT_LOCALITY # optional
      dfuseCPURequest: DFUSE_CPU_REQUEST # optional
      dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
      dfuseCPULimit: DFUSE_CPU_LIMIT # optional
      dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # optional
  • capacity: Parallelstore インスタンスの容量。12Ti16Ti20Ti のいずれかにする必要があります。
  • mountOptions: StorageClass の mountOptions フィールドから継承します。
  • csi.volumeHandle: Parallelstore インスタンスの排他的識別子。形式は PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container にする必要があります。
  • csi.volumeAttributes.accessPoints: Parallelstore サーバーノードの IP アドレスのリスト(カンマ区切り)。
  • csi.volumeAttributes.network: Parallelstore インスタンスの VPC ネットワーク。GKE クラスタのネットワークと一致している必要があります。このフィールドは、CSI ドライバがマウントする前に、指定された Parallelstore インスタンスが有効なネットワークにあることを確認するために使用されます。
  • csi.volumeAttributes.mountLocality: 動的プロビジョニングにノードローカル マウントモードを有効にします。サポートされている値は、nodepod です。デフォルトは pod です。 node を指定する場合は、次のオプションも使用できます。

    • csi.volumeAttributes.dfuseCPURequest: dfuse プロセスの CPU リクエスト。デフォルトは 250m です。
    • csi.volumeAttributes.dfuseMemoryRequest: dfuse プロセスのメモリ リクエスト。デフォルトは 512Mi です。
    • csi.volumeAttributes.dfuseCPULimit: dfuse プロセスの CPU の上限。デフォルトは未設定です。
    • csi.volumeAttributes.dfuseMemoryLimit: dfuse プロセスのメモリ上限。デフォルトは 10Gi です。