9.5.5.4. Multicloud Object Gateway CLI を使用した IBM COS namespace バケットの追加

前提条件

  • 実行中の OpenShift Container Storage Platform
  • Multicloud Object Gateway へのアクセスについては、第 2 章の アプリケーションでの Multicloud Object Gateway へのアクセス について参照してください。
  • Multicloud Object Gateway コマンドラインインターフェイスをダウンロードします。

    # subscription-manager repos --enable=rh-ocs-4-for-rhel-8-x86_64-rpms
    # yum install mcg
    注記

    サブスクリプションマネージャーを使用してリポジトリーを有効にするための適切なアーキテクチャーを指定します。たとえば、以下のようになります。

    • IBM Power Systems の場合は、以下のコマンドを使用します。
    # subscription-manager repos --enable=rh-ocs-4-for-rhel-8-ppc64le-rpms
    • IBM Z インフラストラクチャーの場合は、以下のコマンドを使用します。
    # subscription-manager repos --enable=rh-ocs-4-for-rhel-8-s390x-rpms

    または、mcg パッケージを、https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/package にある OpenShift Container Storage RPM からインストールできます。

    注記

    お使いのアーキテクチャーに応じて、正しい製品バリアントを選択します。

手順

  1. NamespaceStore リソースを作成します。NamespaceStore は、Multicloud Object Gateway namespace バケットでデータの読み取りおよび書き込みターゲットとして使用される基礎となるストレージを表します。MCG コマンドラインインターフェイスから、以下のコマンドを実行します。

    noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
    1. <namespacestore> を NamespaceStore の名前に置き換えます。
    2. <IBM ACCESS KEY>, <IBM SECRET ACCESS KEY>, <IBM COS ENDPOINT> を IBM アクセスキー ID、シークレットアクセスキー、および既存の IBM バケットの場所に対応する地域のエンドポイントに置き換えます。
    3. <bucket-name> を既存の IBM バケット名に置き換えます。この引数は、Multicloud Object Gateway に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
  2. namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。Namespace ポリシーには、single または multi の タイプが必要です。

    • 以下のコマンドを実行して、タイプ single の namespace ポリシーで namespace バケットクラスを作成します。

      noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage

      <resource-name> をリソースに指定する名前に置き換えます。

      <my-bucket-class> を一意のバケットクラス名に置き換えます。

      <resource> を namespace バケットの読み取りおよび書き込みターゲットを定義する単一の namespace-store に置き換えます。

    • 以下のコマンドを実行して、タイプ multi の namespace ポリシーで namespace バケットクラスを作成します。

      noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage

      <resource-name> をリソースに指定する名前に置き換えます。

      <my-bucket-class> を一意のバケットクラス名に置き換えます。

      <write-resource> を、namespace バケットの書き込みターゲットを定義する単一の namespace-store に置き換えます。

      <read-resources> を、namespace バケットの読み取りターゲットを定義する 、コンマで区切られた namespace-stores の一覧に置き換えます。

  3. 以下のコマンドを実行して、手順 2 に定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用してバケットを作成します。

    noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>
    1. <bucket-name> を、選択するバケット名に置き換えます。
    2. <custom-bucket-class> を、手順 2 で作成したバケットクラスの名前に置き換えます。

OBC が Operator によってプロビジョニングされると、バケットが Multicloud Object Gateway で作成され、Operator は OBC の同じ namespace 上に OBC に同じ名前でシークレットおよび ConfigMap を作成します。