Amazon Elastic File System の設定
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で動的ストレージ・プロビジョニングをセットアップする必要があります。
- インストール・フェーズ
クライアントワークステーションのセットアップ
- このタスクを実行する必要があるのは誰ですか?
- このタスクは、クラスター管理者またはストレージ管理者が実行する必要があります。
- このタスクはいつ完了する必要がありますか?
- EFS ストレージを使用する予定の場合は、 Cloud Pak for Dataをインストールする前に動的プロビジョニングをセットアップする必要があります。
AWS Marketplace から Cloud Pak for Data をインストールする予定の場合は、このタスクをスキップできます。
始める前に
このタスクのコマンドを実行する前に、必ず環境変数をsourceしてください。
このタスクについて
この手順では Kubernetes NFS-Client Provisioner ( Kubernetes SIGs organization)を使用して、 EFS ストレージでダイナミック・プロビジョニングをセットアップする。
EFS ファイル・システムの作成
以下のガイダンスを使用して、クラスターからアクセス可能な EFS ファイル・システムを作成します。
EC2 ダッシュボードから、以下を実行します。
- ナビゲーション・メニューから、 「インスタンス」を選択します。
worker
ノードを識別し、そのノードの 「インスタンス ID」 をクリックします。- ワーカー・ノードの VPC ID とセキュリティー・グループを取得します。
- ノードのインスタンスの要約で、 「VPC ID」を見つけます。 ID をテキスト・ファイルに保存します。
- 「セキュリティー」 タブを開き、 「セキュリティー・グループ」を見つけます。 ID をテキスト・ファイルに保存します。
- VPC の CIDR を取得します。
- インスタンスの要約から、VPC ID をクリックして VPC 管理コンソールを開きます。
- VPC 管理コンソールから、VPC の CIDR を見つけます。 CIDR をテキスト・ファイルに保存します。
- VPC 管理コンソールを閉じます。
- セキュリティー・グループのインバウンド・ルールを編集します。
- ナビゲーション・メニューから、「 セキュリティー・グループ」を選択します。
- 前のステップで特定したセキュリティー・グループを検索します。
- 「セキュリティー・グループ ID」をクリックします。
- 「インバウンド・ルール」 タブで、 「インバウンド・ルールの編集」をクリックします。
- ルールの末尾までスクロールし、 「ルールの追加」をクリックします。
- 以下の値を指定します。
- 「タイプ」には、 NFSを指定します。
- 「ソース」には、 「カスタム」を指定します。
- 検索フィールドに、前のステップで確認した CIDR 値を入力します。
- ルールの保存をクリックしてください。
- EFS ファイル・システムを作成します。
- このサイトへ https://console.aws.amazon.com/efs.
- 「ファイル・システムの作成」をクリックします。 次に、 「カスタマイズ」 をクリックします。
- 「ファイル・システム設定」 ページで、ファイル・システムに名前を付けます。 次に、「次へ」をクリックします。
- 「ネットワーク・アクセス (Network access)」 ページで、前の手順で確認した VPC を選択します。
- VPC の各アベイラビリティー・ゾーンについて、以下を行います。
- プライベート・サブネット ID を選択します。
- デフォルトのセキュリティー・グループを削除し、前のステップで指定したセキュリティー・グループに置き換えます。
- 次へ をクリックします。 その後、再度 「次へ」 をクリックします。
- 「レビューと作成」 ページで、 「作成」をクリックします。
- ファイル・システムが作成されるまで待ちます。 ファイル・システムの ID を書き留めます。
プライベート・コンテナー・レジストリーへのプロビジョナー・イメージのミラーリング
- クライアント・ワークステーションがインターネットおよびプライベート・コンテナー・レジストリーに接続できる場合は、 イメージをプライベート・コンテナー・レジストリーに直接ミラーリングすることができます。
- クライアント・ワークステーションがインターネットおよびプライベート・コンテナー・レジストリーに接続できない場合、 イメージをプライベート・コンテナー・レジストリーにミラーリングする前に、イメージを中間コンテナー・レジストリーにミラーリングする必要があります。
プライベート・コンテナー・レジストリーへのプロビジョナー・イメージの直接ミラーリング
Kubernetes NFS-Client Provisioner のイメージをプライベート・コンテナー・レジストリーにミラーリングするには、以下のようにします。
- プライベート・コンテナー・レジストリーにログインします。
cpd-cli manage login-private-registry \ ${PRIVATE_REGISTRY_LOCATION} \ ${PRIVATE_REGISTRY_PUSH_USER} \ ${PRIVATE_REGISTRY_PUSH_PASSWORD}
プライベート・レジストリーが保護されていない場合は、追加のオプションについて
cpd-cli manage login-private-registry
を参照してください。 - イメージをプライベート・コンテナー・レジストリーにミラーリングします。
cpd-cli manage mirror-nfs-provisioner \ --target_registry=${PRIVATE_REGISTRY_LOCATION} \ --source_registry=k8s.gcr.io/sig-storage
中間コンテナー・レジストリーを使用したプロビジョナー・イメージのミラーリング
Kubernetes NFS-Client Provisioner のイメージをプライベート・コンテナー・レジストリーにミラーリングするには、以下のようにします。
- イメージを中間コンテナー・レジストリーにミラーリングします。
cpd-cli manage mirror-nfs-provisioner \ --target_registry=127.0.0.1:12443 \ --source_registry=k8s.gcr.io/sig-storage
- 中間コンテナー・レジストリーをファイアウォールの内側に移動します。
- プライベート・コンテナー・レジストリーにログインします。
cpd-cli manage login-private-registry \ ${PRIVATE_REGISTRY_LOCATION} \ ${PRIVATE_REGISTRY_PUSH_USER} \ ${PRIVATE_REGISTRY_PUSH_PASSWORD}
プライベート・レジストリーが保護されていない場合は、追加のオプションについて
cpd-cli manage login-private-registry
を参照してください。 - イメージをプライベート・コンテナー・レジストリーにミラーリングします。
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 名は、 AWS Console から取得できます。 使用するファイル・システムを選択します。 DNS 名は 「一般」 セクションにあります。
DNS 名の形式は、
<file-storage-id>.efs.<region>.amazonaws.com
です。
の - IP address
- AWS Console から IP アドレスを取得できます。 使用するファイル・システムを選択します。 IP アドレスは 「ネットワーク」 タブにあります。 の
動的ストレージの構成
動的ストレージを構成するには、以下のようにします。
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
を実行してください。- イメージをプライベート・コンテナー・レジストリーにミラーリングした場合は、グローバル・イメージ・プル・シークレットを更新して、クラスターが 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}
- 以下の環境変数を設定します。
EFS_LOCATION
を DNS 名または IP アドレス EFS サーバーに設定します。export EFS_LOCATION=<location>
EFS_PATH
を EFS エクスポート・パスに設定します。 (デフォルト・パスは /です。)export EFS_PATH=/
PROJECT_NFS_PROVISIONER
を、 Kubernetes NFS-Client Provisioner プロビジョナーをデプロイするプロジェクト (名前空間) に設定します。 推奨されるプロジェクトはnfs-provisioner
ですが、任意のプロジェクトを指定できます。重要: プロジェクトを作成するための適切なアクセス権がない場合は、既存のプロジェクト (名前空間) を指定する必要があります。 プロジェクトを作成するための適切な権限がある場合は、cpd-cli manage setup-nfs-provisioner
コマンドを実行すると、プロジェクトが自動的に作成されます。export PROJECT_NFS_PROVISIONER=<project-name>
EFS_STORAGE_CLASS
を、 EFS ストレージ・クラスに使用する名前に設定します。 推奨される名前はefs-nfs-client
です。export EFS_STORAGE_CLASS=efs-nfs-client
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
ヒント: クラスターのアーキテクチャーが分からない場合は、以下のコマンドを実行します。- 以下のコマンドを実行して、クラスター上のノードのリストを取得します。
oc get nodes
ノードの 1 つの名前をコピーします。
- 以下のコマンドを実行して、ノードに関する情報を取得します。
<node-name>
を適切な名前に置き換えます。oc get nodes <node-name> -o jsonpath='{.status.nodeInfo}' | jq
出力には
architecture
が含まれます。
- 以下のコマンドを実行して、動的プロビジョニングをセットアップします。
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}
- 動的プロビジョニングが機能していることを確認します。
- ストレージ・クラスが作成されたことを確認します。
oc get sc
ストレージ・クラスのリストを調べて、 EFS ストレージ・クラスが含まれていることを確認します。 デフォルトのストレージ・クラス名は
efs-nfs-client
です。 nfs-client-provisioner
ポッドが実行中であることを確認します。oc get pods -n ${PROJECT_NFS_PROVISIONER}
ポッドの状況は
Running
でなければなりません。- プロビジョナーによって作成されたテスト永続ボリューム要求 (
pvc
) がバインドされていることを確認します。oc get pvc -n ${PROJECT_NFS_PROVISIONER}
Persistent Volume Claim の状況は
Bound
でなければなりません。
- ストレージ・クラスが作成されたことを確認します。
次の作業
ストレージ・クラスを作成したので、 サービスのカスタム・セキュリティ・コンテキスト制約を作成する準備ができました。