Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

AWSでのRed Hat OpenShiftサービスとNetApp ONTAP

共同作成者

概要

このセクションでは、ROSAで実行されるアプリケーションの永続的ストレージレイヤとしてFSx for ONTAPを活用する方法を説明します。ROSAクラスタへのNetApp Trident CSIドライバのインストール、FSx for ONTAPファイルシステムのプロビジョニング、サンプルステートフルアプリケーションの導入について説明します。また、アプリケーションデータをバックアップおよび復元するための戦略も示します。この統合ソリューションにより、AZ間で容易に拡張できる共有ストレージフレームワークを確立し、Trident CSIドライバを使用してデータのスケーリング、保護、リストアのプロセスを簡素化できます。

前提条件

この図は、複数のAZに展開されたROSAクラスタを示しています。Rosaクラスタのマスターノード、インフラノードはRed HatのVPCにあり、ワーカーノードはお客様のアカウントのVPCにあります。同じVPC内にFSx for ONTAPファイルシステムを作成し、TridentドライバをROSAクラスタにインストールして、このVPCのすべてのサブネットがファイルシステムに接続できるようにします。

Rosaアーキテクチャ

初期セットアップ

  • 1.FSx for NetApp ONTAPのプロビジョニング**

ROSAクラスタと同じVPC内にマルチAZ FSx for NetApp ONTAPを作成します。これにはいくつかの方法があります。CloudFormationスタックを使用したFSxNの作成の詳細が記載されています。

  • a. GitHubリポジトリのクローン**

$ git clone https://github.com/aws-samples/rosa-fsx-netapp-ontap.git
  • B. CloudFormationスタックの実行**パラメータ値を独自の値に置き換えて、以下のコマンドを実行します。

$ cd rosa-fsx-netapp-ontap/fsx
$ aws cloudformation create-stack \
  --stack-name ROSA-FSXONTAP \
  --template-body file://./FSxONTAP.yaml \
  --region <region-name> \
  --parameters \
  ParameterKey=Subnet1ID,ParameterValue=[subnet1_ID] \
  ParameterKey=Subnet2ID,ParameterValue=[subnet2_ID] \
  ParameterKey=myVpc,ParameterValue=[VPC_ID] \
ParameterKey=FSxONTAPRouteTable,ParameterValue=[routetable1_ID,routetable2_ID] \
  ParameterKey=FileSystemName,ParameterValue=ROSA-myFSxONTAP \
  ParameterKey=ThroughputCapacity,ParameterValue=1024 \
  ParameterKey=FSxAllowedCIDR,ParameterValue=[your_allowed_CIDR] \
  ParameterKey=FsxAdminPassword,ParameterValue=[Define Admin password] \
  ParameterKey=SvmAdminPassword,ParameterValue=[Define SVM password] \
  --capabilities CAPABILITY_NAMED_IAM

WHERE: region-name: ROSAクラスタが展開されているリージョンと同じsubnet1_ID: FSxNサブネットの優先サブネットのid 2_ID: FSxNのスタンバイサブネットのid VPC_ID: ROSAクラスタが展開されているVPCのid routetable1_ID, routetable2_ID: ONTAPすべてのトラフィックがFSx for ONTAPの特定のポートにアクセスできるようにするには、0.0.0.0/0または適切なCIDRを使用します。Define Admin password:FSxNにログインするためのパスワードDefine SVM password:作成されるSVMにログインするためのパスワード。

以下に示すAmazon FSxコンソールを使用して、ファイルシステムとStorage Virtual Machine(SVM)が作成されていることを確認します。

FSxNが作成されました

  • 2. ROSAクラスタ用のTrident CSIドライバのインストールと設定**

  • a. Trident Helmリポジトリの追加**

$ helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
  • B. helmを使用してTridentをインストール**

$ helm install trident netapp-trident/trident-operator --version 100.2406.0 --create-namespace --namespace trident
メモ インストールするバージョンに応じて、表示されているコマンドでversionパラメータを変更する必要があります。正しいバージョン番号については、を参照して"ドキュメント"ください。Tridentのその他のインストール方法については、『Trident』を参照して"ドキュメント"ください。
  • C.すべてのTridentポッドが実行中状態であることを確認します**

実行中のTridentポッド

  • 3.FSx for ONTAP(ONTAP NAS)を使用するようにTrident CSIバックエンドを構成**

Tridentバックエンド構成では、ストレージシステムとの通信方法(ここではFSx for ONTAP)をTridentに設定します。バックエンドの作成にあたっては、クラスタ管理インターフェイスとNFSデータインターフェイスに接続するSVMのクレデンシャルを指定します。を使用して、FSxファイルシステムでストレージボリュームをプロビジョニングします"ONTAP - NAS ドライバ"

  • a。まず、次のYAMLを使用してSVMクレデンシャルのシークレットを作成します**

apiVersion: v1
kind: Secret
metadata:
  name: backend-fsx-ontap-nas-secret
  namespace: trident
type: Opaque
stringData:
  username: vsadmin
  password: <value provided for Define SVM password as a parameter to the Cloud Formation Stack>
メモ 以下に示すように、FSxN用に作成したSVMのパスワードをAWS Secrets Managerから取得することもできます。

AWS Secrets Manager

シークレットを取得

  • B.次に、次のコマンドを使用してSVMクレデンシャルのシークレットをROSAクラスタに追加します**

$ oc apply -f svm_secret.yaml

シークレットがTridentネームスペースに追加されたことを確認するには、次のコマンドを使用します。

$ oc get secrets -n trident |grep backend-fsx-ontap-nas-secret

シークレットの適用

  • C。次に、このためのバックエンドオブジェクトを作成し、クローンされたGitリポジトリの FSXディレクトリに移動します。backend-ansc-nas.yamlファイルを開きますONTAP。次の項目を、 managementLIFを管理DNS名 dataLIFに、Amazon FSx SVMのNFS DNS名、 SVM**をSVM名に置き換えます。次のコマンドを使用して、バックエンドオブジェクトを作成します。

次のコマンドを使用して、バックエンドオブジェクトを作成します。

$ oc apply -f backend-ontap-nas.yaml
メモ 以下のスクリーンショットに示すように、Amazon FSxコンソールから管理DNS名、NFS DNS名、SVM名を確認できます。

LIFの取得

  • d。次に、次のコマンドを実行して、バックエンドオブジェクトが作成され、[フェーズ]が[バインド済み]、[ステータス]が[成功]になっていることを確認します**

バックエンドの作成

  • 4.ストレージクラスの作成**これでTridentバックエンドを設定したので、バックエンドを使用するKubernetesストレージクラスを作成できます。ストレージクラスは、クラスタで使用できるリソースオブジェクトです。アプリケーションに対して要求できるストレージのタイプについて説明し、分類します。

  • a。FSxフォルダのstorage-class-csi-nas.yamlファイルを確認します。**

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: trident-csi
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  fsType: "ext4"
allowVolumeExpansion: True
reclaimPolicy: Retain
  • B.ROSAクラスタでストレージクラスを作成し、Trident CSIストレージクラスが作成されていることを確認します。**

バックエンドの作成

これで、Trident CSIドライバのインストールとFSx for ONTAPファイルシステムへの接続は完了です。FSx for ONTAPのファイルボリュームを使用して、サンプルのPostgreSQLステートフルアプリケーションをROSAに導入できるようになりました。

  • C。Trident CSIストレージクラスを使用して作成されたPVCおよびPVCがないことを確認します。**

Tridentを使用したPVCなし

  • d。アプリケーションがTrident CSIを使用してPVを作成できることを確認します。**

  • fsx**フォルダにあるpvc-pvc.yamlファイルを使用してTridentを作成します。

pvc-trident.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: basic
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: trident-csi
 You can issue the following commands to create a pvc and verify that it has been created.
image:redhat_openshift_container_rosa_image11.png["Tridentを使用したテストPVCの作成"]
  • 5.サンプルのPostgreSQLステートフルアプリケーションの導入**

  • a。Helmを使用してPostgreSQLをインストール**

$ helm install postgresql bitnami/postgresql -n postgresql --create-namespace

PostgreSQLのインストール

  • B.アプリケーションポッドが実行中であること、およびアプリケーション用にPVCとPVが作成されていることを確認します。**

PostgreSQLポッド

PostgreSQL PVC

PostgreSQL pv

  • C。PostgreSQLクライアントの配備**

次のコマンドを使用して、インストールされたPostgreSQLサーバーのパスワードを取得します。

$ export POSTGRES_PASSWORD=$(kubectl get secret --namespace postgresql postgresql -o jsoata.postgres-password}" | base64 -d)

次のコマンドを使用してPostgreSQLクライアントを実行し、パスワードを使用してサーバに接続します

$ kubectl run postgresql-client --rm --tty -i --restart='Never' --namespace postgresql --image docker.io/bitnami/postgresql:16.2.0-debian-11-r1 --env="PGPASSWORD=$POSTGRES_PASSWORD" \
> --command -- psql --host postgresql -U postgres -d postgres -p 5432

PostgreSQLクライアント

  • d。データベースとテーブルを作成します。テーブルのスキーマを作成し、テーブルに2行のデータを挿入します。**

PostgreSQLテーブル、スキーマ、行

PostgreSQL行1

PostgreSQL行2