次のマニフェストは、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_kb
やmax_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 インスタンスの容量。12Ti
、16Ti
、20Ti
のいずれかにする必要があります。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
: 動的プロビジョニングにノードローカル マウントモードを有効にします。サポートされている値は、node
とpod
です。デフォルトはpod
です。node
を指定する場合は、次のオプションも使用できます。csi.volumeAttributes.dfuseCPURequest
: dfuse プロセスの CPU リクエスト。デフォルトは250m
です。csi.volumeAttributes.dfuseMemoryRequest
: dfuse プロセスのメモリ リクエスト。デフォルトは512Mi
です。csi.volumeAttributes.dfuseCPULimit
: dfuse プロセスの CPU の上限。デフォルトは未設定です。csi.volumeAttributes.dfuseMemoryLimit
: dfuse プロセスのメモリ上限。デフォルトは10Gi
です。