「IBM Cloud Pak for Data 用の Multicloud Object Gateway のインストールとセットアップ」について、ROSA環境でS3をバッキングストアとして使用する場合の手順例です。
IBM Cloud Pak for Data 4.7.x Official doc:
Watson Assistant、 Watson Discovery、 Watson Knowledge Studio、または Watson Speech servicesのインストールを計画している場合で、永続ストレージとしてRed Hat OpenShift Data Foundation または IBM Storage Fusion Data Foundation を使用していない場合に必要となる手順です。詳細は、IBM Cloud Pak for Data 4.7.x Official docをご参照ください。
注)当記事の内容は2023年8月に実施したものであり、今後変更される場合があります。
1. スタンドアロンの Multicloud Object Gateway のデプロイ
参考:スタンドアロンの Multicloud Object Gateway のデプロイ
-
OpenShift Web コンソールにログインします。
-
Operators → OperatorHub をクリックします。
-
スクロールするか、または OpenShift Data Foundation を Filter by keyword ボックスに入力し、
OpenShift Data Foundation
Operator を検索し、クリックします。
-
Operatorのインストール ページで、以下のオプションを設定します。
i. 更新チャネルにstable-4.12
を選択します。
ii. インストールモード オプションにクラスターの特定のnamespace
を選択します。
iii. インストール済みのNamespace にOperator 推奨のnamespace: openshift-storage
を選択します。namespace openshift-storage が存在しない場合、これは Operator のインストール時に作成されます。
iv. 更新の承認ストラテジー について、自動 または 手動 を選択します。
- 自動更新を選択した場合、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。
- 手動更新を選択した場合、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。
v. Console プラグイン に有効にする
が選択されていることを確認します。
vi.インストール
をクリックします。
確認
-
Operator が正常にインストールされると、「Web コンソールの更新を利用できます」というポップアップがユーザーインターフェイスに表示されます。このポップアップから
Web コンソールの更新
をクリックして、コンソールに変更を反映します。
-
Web コンソールに移動します。
2. スタンドアロンの Multicloud Object Gateway の作成
参考:スタンドアロンの Multicloud Object Gateway の作成
-
OpenShift Web コンソールで、Operators → インストール済みの Operator をクリックし、インストールされた Operator を表示します。
選択された Project が openshift-storage であることを確認します。 -
OpenShift Data Foundation
Operator をクリックした後、StorageSystem の作成
をクリックします。
-
StorageSystem の作成 ページで、以下を選択します。
i. Deployment タイプ にMulticloud Object Gateway
を選択します。
ii.既存の StorageClass の使用
オプションを選択します。
iii.次へ
をクリックします。
確認
このステップを完了すると、Data Foundationダッシュボードに「バッキングストア」、「バケットクラス」、「namespace ストア」カードが追加されます。
3. 新規バッキングストアの作成
参考:ハイブリッドまたはマルチクラウド用のストレージリソースの追加 - 新規バッキングストアの作成
このステップを実行する前に、エンタープライズ・グレードの S3 互換ストレージ上にバッキングストアを作成するか、インストールする予定のサービスごとにバッキングストアを作成する必要があります。
Amazon S3 bucketをセットアップし、アクセスに必要な認証情報を入手する手順の例はこちらをご参照ください。
-
OpenShift Web コンソールで、「ストレージ」 → 「Data Foundation」 に移動し、「バッキングストア」カードに移り、
作成 Backing Store
をクリックします。
-
セットアップ済みのバッキングストア用ストレージの情報を入力し、
BuckingStore の作成
をクリックします。以下は、Amazon S3 bucketに認証情報を使用してアクセスする場合の入力例です。
4. NooBaa アカウントの作成(オプション)
Multicloud Object Gatewayにアクセスするサービスごとに異なる ID を作成する場合は、サービスごとに NooBaa アカウントを作成します。
export ACCOUNT_NAME=<service-account-name>
export BACKING_STORE=<backing-store-name>
cat <<EOF | oc apply -f -
apiVersion: noobaa.io/v1alpha1
kind: NooBaaAccount
metadata:
labels:
app: noobaa
name: ${ACCOUNT_NAME}
namespace: openshift-storage
spec:
default_resource: ${BACKING_STORE}
allow_bucket_creation: true
allowed_buckets:
full_permission: true
permission_list: []
EOF
実行例
# export ACCOUNT_NAME=watson-discovery-noobaa-account
# export BACKING_STORE=rosa-wd-s3
# cat <<EOF | oc apply -f -
> apiVersion: noobaa.io/v1alpha1
> kind: NooBaaAccount
> metadata:
> labels:
> app: noobaa
> name: ${ACCOUNT_NAME}
> namespace: openshift-storage
> spec:
> default_resource: ${BACKING_STORE}
> allow_bucket_creation: true
> allowed_buckets:
> full_permission: true
> permission_list: []
> EOF
noobaaaccount.noobaa.io/watson-discovery-noobaa-account created
ここでサービスごとの NooBaa アカウントを作成した場合、openshift-storage namespace に該当アカウントのシークレットが作成されます。今回作成したアカウント watson-discovery-noobaa-account
の場合は、noobaa-account-watson-discovery-noobaa-account
です。このシークレットを Multicloud Object Gateway を使用するサービスのシークレットの作成 の手順を実行する際、環境変数 NOOBAA_ACCOUNT_CREDENTIALS_SECRET
に設定します。
# oc get secrets -n openshift-storage
NAME TYPE DATA AGE
:
noobaa-account-watson-discovery-noobaa-account Opaque 2 20h
noobaa-admin Opaque 5 20h
noobaa-db Opaque 2 20h
noobaa-db-dockercfg-5cdfh kubernetes.io/dockercfg 1 20h
noobaa-db-serving-cert kubernetes.io/tls 2 20h
noobaa-db-token-d9gvz kubernetes.io/service-account-token 4 20h
noobaa-dockercfg-qmtss kubernetes.io/dockercfg 1 20h
noobaa-endpoint-dockercfg-6zcvt kubernetes.io/dockercfg 1 20h
noobaa-endpoint-token-tl9rd kubernetes.io/service-account-token 4 20h
noobaa-endpoints Opaque 1 20h
noobaa-mgmt-serving-cert kubernetes.io/tls 2 20h
noobaa-odf-ui-dockercfg-6f9zn kubernetes.io/dockercfg 1 20h
noobaa-odf-ui-token-hhzk4 kubernetes.io/service-account-token 4 20h
noobaa-operator Opaque 1 20h
noobaa-operator-service-cert kubernetes.io/tls 3 20h
noobaa-root-master-key Opaque 1 20h
noobaa-s3-serving-cert kubernetes.io/tls 2 20h
noobaa-server Opaque 2 20h
noobaa-token-jxl6w kubernetes.io/service-account-token 4 20h
: