NetApp AIPod環境向けのKubernetesストレージクラスの例
Trident を使用して Kubernetes クラスタ内のストレージリソースを動的にプロビジョニングするには、 Kubernetes StorageClasses を 1 つ以上作成する必要があります。以降の例は、このソリューションのコンポーネントをに導入する場合に作成するさまざまなタイプのStorageClassesを示して "NetApp AIPod"います。StorageClasses、および他のプラットフォーム/環境のStorageClassesなどの詳細については、を参照してください "Trident のドキュメント"。
-
NetAppでは"NetApp AIPod導入のTridentバックエンドの例"、手順1で作成したFlexGroup対応Tridentバックエンド用にストレージクラスを作成することを推奨しています。以降のコマンド例では、セクションで作成した2つのバックエンド"NetApp AIPod導入のTridentバックエンドの例"(手順1)で使用するバックエンドと使用し"RDMA経由のNFS"ないバックエンドに対応する複数のStorageClassesを作成する方法を示します。
対応する PersistentVolumeClaim ( PVC )が削除されたときに永続ボリュームが削除されないようにするため、次の例では「 Retain 」の「 ReclaimPolicy 」の値を使用しています。「 ReclaimPolicy 」フィールドの詳細については、公式を参照してください "Kubernetes のドキュメント"。
注:次の例のStorageClassesで使用される最大転送サイズは262144です。この最大転送サイズを使用するには、それに応じてONTAPシステムの最大転送サイズを設定する必要があります。詳細については、を参照して "ONTAP のドキュメント" ください。
注:RDMA経由のNFSを使用するには、ONTAPシステムでRDMA経由のNFSを設定する必要があります。詳細については、を参照して "ONTAP のドキュメント" ください。
注:次の例では、StorageClass定義ファイルのStoragePoolフィールドに特定のバックエンドが指定されていません。
$ cat << EOF > ./storage-class-aipod-flexgroups-retain.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexgroups-retain provisioner: csi.trident.netapp.io mountOptions: ["vers=4.1", "nconnect=16", "rsize=262144", "wsize=262144"] parameters: backendType: "ontap-nas-flexgroup" storagePools: "aipod-flexgroups-iface1:.*" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexgroups-retain.yaml storageclass.storage.k8s.io/aipod-flexgroups-retain created $ cat << EOF > ./storage-class-aipod-flexgroups-retain-rdma.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexgroups-retain-rdma provisioner: csi.trident.netapp.io mountOptions: ["vers=4.1", "proto=rdma", "max_connect=16", "rsize=262144", "wsize=262144"] parameters: backendType: "ontap-nas-flexgroup" storagePools: "aipod-flexgroups-iface1:.*" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexgroups-retain-rdma.yaml storageclass.storage.k8s.io/aipod-flexgroups-retain-rdma created $ kubectl get storageclass NAME PROVISIONER AGE aipod-flexgroups-retain csi.trident.netapp.io 0m aipod-flexgroups-retain-rdma csi.trident.netapp.io 0m
-
NetAppでは"AIPod配置用のTridentバックエンドの例"、手順2で作成したFlexVol対応Tridentバックエンドに対応するStorageClassを作成することも推奨しています。以下のコマンド例は、 FlexVol ボリューム用の単一のストレージクラスの作成を示しています。
注:次の例では、StorageClass定義ファイルのStoragePoolフィールドに特定のバックエンドが指定されていません。Kubernetesを使用してこのStorageClassを使用するボリュームを管理すると、Tridentは、
ontap-nas
ドライバ。$ cat << EOF > ./storage-class-aipod-flexvols-retain.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexvols-retain provisioner: netapp.io/trident parameters: backendType: "ontap-nas" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexvols-retain.yaml storageclass.storage.k8s.io/aipod-flexvols-retain created $ kubectl get storageclass NAME PROVISIONER AGE aipod-flexgroups-retain csi.trident.netapp.io 0m aipod-flexgroups-retain-rdma csi.trident.netapp.io 0m aipod-flexvols-retain csi.trident.netapp.io 0m