Amazon Elastic File System の設定

重要: IBM Cloud Pak® for Data バージョン 4.7 は、2025年7月31日にサポート終了(EOS)となります。 詳しくは、 サービス中止のお知らせ for IBM Cloud Pak for Data Version 4.X をご覧ください。

IBM Cloud Pak for Data バージョン 4.7 がサポート終了になる前に、 IBM Software Hub バージョン 5.1 にアップグレードしてください。 詳細については、 IBM Software Hub Version 5.1 ドキュメントの Upgrading IBM Software Hub を参照してください。

Amazon Elastic File System (EFS) は、デフォルトでは動的ストレージ・プロビジョニングをサポートしません。また、 Red Hat® OpenShift® には、 NFSベースのストレージ・クラスを作成するためのプロビジョナー・プラグインは含まれていません。 そのため、 Amazon Elastic File Systemで動的ストレージ・プロビジョニングをセットアップする必要があります。

インストール・フェーズ
君はここにいない クライアントワークステーションのセットアップ
君はここにいない クラスターのセットアップ
君はここにいない 必要な情報の収集
君はここにいない プライベートコンテナレジストリからインストールを実行する準備
ここにアイコンが表示されます。 クラスタの準備 Cloud Pak for Data
君はここにいない のインスタンスをインストールする準備をしている。 Cloud Pak for Data
君はここにいない のインスタンスをインストールする。 Cloud Pak for Data
このタスクを実行する必要があるのは誰ですか?
このタスクは、クラスター管理者またはストレージ管理者が実行する必要があります。
このタスクはいつ完了する必要がありますか?
EFS ストレージを使用する予定の場合は、 Cloud Pak for Dataをインストールする前に動的プロビジョニングをセットアップする必要があります。

AWS Marketplace から Cloud Pak for Data をインストールする予定の場合は、このタスクをスキップできます。

始める前に

ベスト・プラクティス: このタスクの多くのコマンドは、ご使用のインストール済み環境に環境変数をセットアップした場合に作成されたとおりに実行できます。 手順については、 インストール環境変数のセットアップを参照してください。

このタスクのコマンドを実行する前に、必ず環境変数をsourceしてください。

このタスクについて

この手順では Kubernetes NFS-Client Provisioner ( Kubernetes SIGs organization)を使用して、 EFS ストレージでダイナミック・プロビジョニングをセットアップする。

EFS ファイル・システムの作成

以下のガイダンスを使用して、クラスターからアクセス可能な EFS ファイル・システムを作成します。

EC2 ダッシュボードから、以下を実行します。

  1. ナビゲーション・メニューから、 「インスタンス」を選択します。
  2. worker ノードを識別し、そのノードの 「インスタンス ID」 をクリックします。
  3. ワーカー・ノードの VPC ID とセキュリティー・グループを取得します。
    1. ノードのインスタンスの要約で、 「VPC ID」を見つけます。 ID をテキスト・ファイルに保存します。
    2. 「セキュリティー」 タブを開き、 「セキュリティー・グループ」を見つけます。 ID をテキスト・ファイルに保存します。
  4. VPC の CIDR を取得します。
    1. インスタンスの要約から、VPC ID をクリックして VPC 管理コンソールを開きます。
    2. VPC 管理コンソールから、VPC の CIDR を見つけます。 CIDR をテキスト・ファイルに保存します。
    3. VPC 管理コンソールを閉じます。
  5. セキュリティー・グループのインバウンド・ルールを編集します。
    1. ナビゲーション・メニューから、「 セキュリティー・グループ」を選択します。
    2. 前のステップで特定したセキュリティー・グループを検索します。
    3. 「セキュリティー・グループ ID」をクリックします。
    4. 「インバウンド・ルール」 タブで、 「インバウンド・ルールの編集」をクリックします。
    5. ルールの末尾までスクロールし、 「ルールの追加」をクリックします。
    6. 以下の値を指定します。
      • 「タイプ」には、 NFSを指定します。
      • 「ソース」には、 「カスタム」を指定します。
      • 検索フィールドに、前のステップで確認した CIDR 値を入力します。
    7. ルールの保存をクリックしてください。
  6. EFS ファイル・システムを作成します。
    1. このサイトへ https://console.aws.amazon.com/efs.
    2. 「ファイル・システムの作成」をクリックします。 次に、 「カスタマイズ」 をクリックします。
    3. 「ファイル・システム設定」 ページで、ファイル・システムに名前を付けます。 次に、「次へ」をクリックします。
    4. 「ネットワーク・アクセス (Network access)」 ページで、前の手順で確認した VPC を選択します。
    5. VPC の各アベイラビリティー・ゾーンについて、以下を行います。
      • プライベート・サブネット ID を選択します。
      • デフォルトのセキュリティー・グループを削除し、前のステップで指定したセキュリティー・グループに置き換えます。
    6. 次へ をクリックします。 その後、再度 「次へ」 をクリックします。
    7. 「レビューと作成」 ページで、 「作成」をクリックします。
  7. ファイル・システムが作成されるまで待ちます。 ファイル・システムの ID を書き留めます。

プライベート・コンテナー・レジストリーへのプロビジョナー・イメージのミラーリング

プライベート・コンテナー・レジストリーからイメージをプルする場合は、 Kubernetes NFS-Client Provisioner のイメージをプライベート・コンテナー・レジストリーにミラーリングします。 ご使用の環境に該当するタスクを実行します。

プライベート・コンテナー・レジストリーへのプロビジョナー・イメージの直接ミラーリング

Kubernetes NFS-Client Provisioner のイメージをプライベート・コンテナー・レジストリーにミラーリングするには、以下のようにします。

  1. プライベート・コンテナー・レジストリーにログインします。
    cpd-cli manage login-private-registry \
    ${PRIVATE_REGISTRY_LOCATION} \
    ${PRIVATE_REGISTRY_PUSH_USER} \
    ${PRIVATE_REGISTRY_PUSH_PASSWORD}

    プライベート・レジストリーが保護されていない場合は、追加のオプションについて cpd-cli manage login-private-registry を参照してください。

  2. イメージをプライベート・コンテナー・レジストリーにミラーリングします。
    cpd-cli manage mirror-nfs-provisioner \
    --target_registry=${PRIVATE_REGISTRY_LOCATION} \
    --source_registry=k8s.gcr.io/sig-storage


中間コンテナー・レジストリーを使用したプロビジョナー・イメージのミラーリング

Kubernetes NFS-Client Provisioner のイメージをプライベート・コンテナー・レジストリーにミラーリングするには、以下のようにします。

  1. イメージを中間コンテナー・レジストリーにミラーリングします。
    cpd-cli manage mirror-nfs-provisioner \
    --target_registry=127.0.0.1:12443 \
    --source_registry=k8s.gcr.io/sig-storage
  2. 中間コンテナー・レジストリーをファイアウォールの内側に移動します。
  3. プライベート・コンテナー・レジストリーにログインします。
    cpd-cli manage login-private-registry \
    ${PRIVATE_REGISTRY_LOCATION} \
    ${PRIVATE_REGISTRY_PUSH_USER} \
    ${PRIVATE_REGISTRY_PUSH_PASSWORD}

    プライベート・レジストリーが保護されていない場合は、追加のオプションについて cpd-cli manage login-private-registry を参照してください。

  4. イメージをプライベート・コンテナー・レジストリーにミラーリングします。
    cpd-cli manage mirror-nfs-provisioner \
    --target_registry=${PRIVATE_REGISTRY_LOCATION} \
    --source_registry=127.0.0.1:12443

Amazon Elastic File System の接続の詳細の取得

動的プロビジョニングをセットアップする前に、 Amazon Elastic File Systemの DNS 名または IP アドレスを取得する必要があります。

DNS 名 (推奨)
DNS 名は、 Amazon EFS > File systemsAWS Console から取得できます。 使用するファイル・システムを選択します。 DNS 名は 「一般」 セクションにあります。

DNS 名の形式は、 <file-storage-id>.efs.<region>.amazonaws.comです。

IP address
Amazon EFS > File systemsAWS Console から IP アドレスを取得できます。 使用するファイル・システムを選択します。 IP アドレスは 「ネットワーク」 タブにあります。

動的ストレージの構成

動的ストレージを構成するには、以下のようにします。

  1. cpd-cli manage login-to-ocp コマンドを実行して、このタスクを実行するための十分な権限を持つユーザーとしてクラスターにログインします。 次に例を示します。
    cpd-cli manage login-to-ocp \
    --username=${OCP_USERNAME} \
    --password=${OCP_PASSWORD} \
    --server=${OCP_URL}
    ヒント: login-to-ocp コマンドは、 oc login コマンドと同じ入力を使用します。 詳しくは、 oc login --help を実行してください。
  2. イメージをプライベート・コンテナー・レジストリーにミラーリングした場合は、グローバル・イメージ・プル・シークレットを更新して、クラスターが Kubernetes NFS-Client Provisioner イメージにアクセスできるようにします。

    グローバル・イメージ・プル・シークレットには、プライベート・コンテナー・レジストリーからイメージを プル できるアカウントの資格情報が含まれている必要があります。

    cpd-cli manage add-cred-to-global-pull-secret \
    --registry=${PRIVATE_REGISTRY_LOCATION} \
    --registry_pull_user=${PRIVATE_REGISTRY_PULL_USER} \
    --registry_pull_password=${PRIVATE_REGISTRY_PULL_PASSWORD}
  3. 以下の環境変数を設定します。
    1. EFS_LOCATION を DNS 名または IP アドレス EFS サーバーに設定します。
      export EFS_LOCATION=<location>
    2. EFS_PATHEFS エクスポート・パスに設定します。 (デフォルト・パスは /です。)
      export EFS_PATH=/
    3. PROJECT_NFS_PROVISIONER を、 Kubernetes NFS-Client Provisioner プロビジョナーをデプロイするプロジェクト (名前空間) に設定します。 推奨されるプロジェクトは nfs-provisionerですが、任意のプロジェクトを指定できます。
      重要: プロジェクトを作成するための適切なアクセス権がない場合は、既存のプロジェクト (名前空間) を指定する必要があります。 プロジェクトを作成するための適切な権限がある場合は、 cpd-cli manage setup-nfs-provisioner コマンドを実行すると、プロジェクトが自動的に作成されます。
      export PROJECT_NFS_PROVISIONER=<project-name>
    4. EFS_STORAGE_CLASS を、 EFS ストレージ・クラスに使用する名前に設定します。 推奨される名前は efs-nfs-clientです。
      export EFS_STORAGE_CLASS=efs-nfs-client
    5. NFS_IMAGE を、ご使用の Red Hat OpenShift Container Platform アーキテクチャーおよびイメージをプルする元のレジストリーの正しい値に設定します。
      アーキテクチャー コマンド
      x86-64
      Kubernetes レジストリー
      export NFS_IMAGE=k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
      プライベート・コンテナー・レジストリー
      export NFS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/nfs-subdir-external-provisioner:v4.0.2
      ppc64le
      Kubernetes レジストリー
      export NFS_IMAGE=gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.2
      プライベート・コンテナー・レジストリー
      export NFS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/nfs-subdir-external-provisioner:v4.0.2
      s390x
      Kubernetes レジストリー
      export NFS_IMAGE=gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.2
      プライベート・コンテナー・レジストリー
      export NFS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/nfs-subdir-external-provisioner:v4.0.2
      ヒント: クラスターのアーキテクチャーが分からない場合は、以下のコマンドを実行します。
      1. 以下のコマンドを実行して、クラスター上のノードのリストを取得します。
        oc get nodes

        ノードの 1 つの名前をコピーします。

      2. 以下のコマンドを実行して、ノードに関する情報を取得します。

        <node-name> を適切な名前に置き換えます。

        oc get nodes <node-name> -o jsonpath='{.status.nodeInfo}' | jq

        出力には architectureが含まれます。

  4. 以下のコマンドを実行して、動的プロビジョニングをセットアップします。
    cpd-cli manage setup-nfs-provisioner \
    --nfs_server=${EFS_LOCATION} \
    --nfs_path=${EFS_PATH} \
    --nfs_provisioner_ns=${PROJECT_NFS_PROVISIONER} \
    --nfs_storageclass_name=${EFS_STORAGE_CLASS} \
    --nfs_provisioner_image=${NFS_IMAGE}
  5. 動的プロビジョニングが機能していることを確認します。
    1. ストレージ・クラスが作成されたことを確認します。
      oc get sc

      ストレージ・クラスのリストを調べて、 EFS ストレージ・クラスが含まれていることを確認します。 デフォルトのストレージ・クラス名は efs-nfs-clientです。

    2. nfs-client-provisioner ポッドが実行中であることを確認します。
      oc get pods -n ${PROJECT_NFS_PROVISIONER}

      ポッドの状況は Runningでなければなりません。

    3. プロビジョナーによって作成されたテスト永続ボリューム要求 (pvc) がバインドされていることを確認します。
      oc get pvc -n ${PROJECT_NFS_PROVISIONER}

      Persistent Volume Claim の状況は Boundでなければなりません。

次の作業

ストレージ・クラスを作成したので、 サービスのカスタム・セキュリティ・コンテキスト制約を作成する準備ができました。