FSx for NetApp ONTAP CSI ドライバー
このセクションに入る前に、メインのストレージセクションで紹介したKubernetesストレージオブジェクト(ボリューム、永続ボリューム(PV)、永続ボリューム要求(PVC)、動的プロビジョニング、一時ストレージ)について理解しておくべきです。
Amazon FSx for NetApp ONTAP Container Storage Interface (CSI) ドライバーは、AWSで実行されているKubernetesクラスターがAmazon FSx for NetApp ONTAPファイルシステムのライフサイクルを管理できるようにするCSIインターフェースを提供することで、ステートフルなコンテナ化アプリケーションを実行できるようにします。
次のアーキテクチャ図は、FSx for NetApp ONTAPをEKSポッドの永続ストレージとして使用する方法を示して います:

EKSクラスターで動的プロビジョニングを使用してAmazon FSx for NetApp ONTAPを利用するには、まずFSx for NetApp ONTAP CSIドライバーがインストールされていることを確認する必要があります。このドライバーはCSI仕様を実装しており、コンテナオーケストレーターがAmazon FSx for NetApp ONTAPファイルシステムのライフサイクル全体を管理できるようにします。
helmを使用してAmazon FSxN for NetApp ONTAP Trident CSIドライバーをインストールできます。ワークショップの準備の一環としてすでに作成されている必要なIAMロールを提供する必要があります。
次のようにしてインストールを確認できます:
NAME READY STATUS RESTARTS AGE
trident-controller-b6b5899-kqdjh 6/6 Running 0 87s
trident-node-linux-9q4sj 2/2 Running 0 86s
trident-node-linux-bxg5s 2/2 Running 0 86s
trident-node-linux-z92x2 2/2 Running 0 86s
trident-operator-588c7c854d-t4c4x 1/1 Running 0 102s
FSx for NetApp ONTAPファイルシステムがストレージ仮想マシン(SVM)と、FSxマウントポイントへのNFSトラフィックを許可するインバウンドルールを含む必要なセキュリティグループとともにプロビジョニングされています。後で必要になるIDを取得しましょう:
fs-0123456789abcdef0
FSx for NetApp ONTAP CSIドライバーは動的プロビジョニングと静的プロビジョニングの両方をサポートしています:
- 動的プロビジョニング:ドライバーは既存のFSx for NetApp ONTAPファイルシステム上にボリュームを作成します。これには、StorageClassパラメータで指定する必要がある既存のAWS FSx for NetApp ONTAPファイルシステムが必要です。
- 静的プロビジョニング:これも事前に作成されたAWS FSx for NetApp ONTAPファイルシステムが必要であり、ドライバーを使用してコンテナ内のボリュームとしてマウントできます。
次に、事前にプロビジョニングされたFSx for NetApp ONTAPファイルシステムを使用するように構成されたTridentBackendConfigオブジェクトを作成します。バックエンドを作成するために使用するfsxn-backend-nas.yamlファイルを見てみ ましょう:
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
backendName: tbc-ontap-nas
svm: ${EKS_CLUSTER_NAME}-svm
aws:
fsxFilesystemID: ${FSXN_ID}
credentials:
name: "${FSXN_SECRET_ARN}"
type: awsarn
svmパラメータにEKS_CLUSTER_NAME環境変数を注入します - これはストレージ仮想マシン名です
fsxFilesystemIDパラメータにFSXN_ID環境変数を注入します - これはCSIドライバーを接続するFSxNファイルシステムです
credentials.nameパラメータにFSXN_SECRET_ARN環境変数を注入します - これはONTAP APIインターフェースに接続するための認証情報を含むAWS Secrets Managerに安全に保存されているシークレットのARNです
バックエンド構成を適用します:
tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
TridentBackendConfigが作成されたことを確認します:
NAME BACKEND NAME BACKEND UUID PHASE STATUS
backend-tbc-ontap-nas tbc-ontap-nas bbae8686-25e4-4fca-a4c7-7ab664c7db9c Bound Success
次に、fsxnstorageclass.yamlファイルを使用してStorageClassオブジェクトを作成しましょう:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fsxn-sc-nfs
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
allowVolumeExpansion: True
Amazon FSx for NetApp ONTAP CSIプロビジョナーにprovisionerパラメータをcsi.trident.netapp.ioに設定します
ONTAPボリュームへのアクセスにONTAP NASドライバーを使用することを示すためにbackendTypeをontap-nasに設定します
StorageClassを適用します:
storageclass.storage.k8s.io/fsxn-sc-nfs created
StorageClassを調べてみましょう。プロビジョナーとしてFSx for NetApp ONTAP CSIドライバーを使用し、ONTAP NASプロビジョニングモード用に構成されていることに注目してください:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
fsxn-sc-nfs csi.trident.netapp.io Delete Immediate true 8m29s
Name: fsxn-sc-nfs
IsDefaultClass: No
Annotations: kubectl.kubernetes.io/last-applied-configuration={"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"fsxn-sc-nfs"},"parameters":{"backendType":"ontap-nas"},"provisioner":"csi.trident.netapp.io"}Provisioner: csi.trident.netapp.io
Parameters: backendType=ontap-nas
AllowVolumeExpansion: True
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: Immediate
Events: <none>
これでFSx for NetApp ONTAP StorageClassの理解とFSx for NetApp ONTAP CSIドライバーの仕組みが分かりました。次のステップに進む準備が整いました。次のステップでは、Kubernetes動的ボリュームプロビジョニングとPersistentVolumeを使用してFSx for NetApp ONTAP StorageClassを利用し、製品画像を保存するためにUIコンポーネントを変更します。