次のマニフェストは、StorageClass リソースと Persistent Volume リソースでサポートされている CSI ドライバ フィールドについて説明しています。
ストレージ クラス
次のマニフェストには、StorageClass でサポートされているすべてのフィールドが含まれています。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: lustre-csi-example-storage-class
provisioner: lustre.csi.storage.gke.io
parameters:
network: VPC_NETWORK # optional
filesystem: LUSTRE_FILESYSTEM_NAME # optional
labels: KEY_1=VALUE_1,KEY_2=VALUE_2,...,KEY_N=VALUE_N # optional
description: DESCRIPTION # optional
perUnitStorageThroughput: 125 | 250 | 500 | 1000 # required
volumeBindingMode: WaitForFirstConsumer | Immediate # default is Immediate
allowedTopologies:
- matchLabelExpressions:
- key: topology.gke.io/zone
values:
- ZONE_1
- ZONE_2
mountOptions:
- LUSTRE_MOUNT_OPTIONS
次の値を置き換えます。
network: 省略可。マネージド Lustre インスタンスを作成する Virtual Private Cloud(VPC)ネットワーク。このプロパティが指定されていない場合は、デフォルトのネットワークが使用されます。共有 VPC ネットワークに Managed Lustre インスタンスを作成するには、ネットワークの完全な名前を指定する必要があります。例:
projects/PROJECT_ID/global/networks/VPC_NETWORK_NAMEfilesystem: Managed Lustre インスタンスのfsnameを指定します。このパラメータは、動的プロビジョニングに使用されます。fsnameは、アルファベットで始まる最大 8 文字の英数字文字列にする必要があります。値を指定しない場合、CSI ドライバは"lfsNNNNN"形式("lfs97603"など)のfsnameを生成します。labels: 省略可。 Managed Lustre は、インスタンスごとにラベルを Key-Value ペアのマップとしてサポートします。Managed Lustre CSI ドライバを使用すると、ユーザーが指定したラベルをインスタンスに付加できます。description: 省略可。インスタンスの説明。2,048 文字以下にする必要があります。perUnitStorageThroughput: インスタンスの単位あたりのストレージ スループット(MB/秒/TiB)を指定します。サポートされる値は125、250、500、1000です。デフォルトは1000です。allowTopologies: 省略可。Managed Lustre インスタンスはゾーン リソースです。このプロパティが指定されていない場合、Managed Lustre インスタンスは CSI コントローラ ドライバ Pod と同じゾーンに作成され、ボリューム バインディング モードはデフォルトでImmediateになります。WaitForFirstConsumerが指定されている場合、トポロジは Pod がスケジュールされている場所に設定されます。ただし、この設定により、ボリュームがプロビジョニングされるまで Pod がブロックされる可能性があります。Managed Lustre CSI ドライバは、トポロジ機能をサポートしています。これにより、StorageClass で指定されたトポロジに基づいて、永続ボリュームと Pod が許可されたトポロジに配置されます。
mountOptions: 省略可。mount.lustreマウント オプションを指定します。Managed Lustre ボリュームは、pv.spec.mountOptionsフィールドの StorageClass からこれらのマウント オプションを継承します。
永続ボリューム
次のマニフェストには、Persistent Volume でサポートされているすべてのフィールドが含まれています。
apiVersion: v1
kind: PersistentVolume
metadata:
name: preprov-pv
annotations:
pv.kubernetes.io/provisioned-by: lustre.csi.storage.gke.io
spec:
mountOptions:
- LUSTRE_MOUNT_OPTIONS
...
storageClassName: ""
capacity:
storage: CAPACITY
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
csi:
driver: lustre.csi.storage.gke.io
volumeHandle: EXISTING_LUSTRE_INSTANCE_NAME
volumeAttributes:
ip: EXISTING_LUSTRE_IP_ADDRESS
filesystem: EXISTING_LUSTRE_FSNAME
次の値を置き換えます。
capacity.storage: Managed Lustre インスタンスの容量。サポートされているインスタンスの最小容量と最大容量については、パフォーマンス ティアをご覧ください。mountOptions:mount.lustreマウント オプションを指定します。この値は、StorageClass のmountOptionsフィールドから継承されます。csi.volumeHandle: Managed Lustre インスタンスの排他的識別子。PROJECT_ID/LOCATION/INSTANCE_NAME の形式を使用する必要があります。csi.volumeAttributes.ip: マウントに使用される Managed Lustre インスタンスの IP アドレス。csi.volumeAttributes.filesystem: Managed Lustre インスタンスのファイル システム名。8 文字の識別子です。