7.7. エンドポイントの追加による Multicloud Object Gateway パフォーマンスのスケーリング [テクノロジープレビュー]
Multicloud Object Gateway のパフォーマンスは環境によって異なる場合があります。特定のアプリケーションでは、高速なパフォーマンスを必要とする場合があり、これは S3 エンドポイントをスケーリングして簡単に対応できます。
Multicloud Object Gateway リソースプールは、デフォルトで有効にされる 2 種類のサービスを提供する NooBaa デーモンコンテナーのグループです。
- ストレージサービス
- S3 エンドポイントサービス
7.7.1. Multicloud Object Gateway での S3 エンドポイント [テクノロジープレビュー]
S3 エンドポイントは、すべての Multicloud Object Gateway がデフォルトで提供するサービスであり、これは Multicloud Object Gateway で負荷の高いデータ消費タスクの大部分を処理します。エンドポイントサービスは、データチャンク、重複排除、圧縮、および暗号化を処理し、Multicloud Object Gateway からのデータ配置の指示を受け入れます。
7.7.2. ストレージノードを使用したスケーリング [テクノロジープレビュー]
前提条件
- Multicloud Object Gateway へのアクセスのある実行中の OpenShift Container Storage Platform
Multicloud Object Gateway のストレージノードは 1 つ以上の永続ボリュームに割り当てられた NooBaa デーモンコンテナーであり、ローカルオブジェクトサービスデータストレージに使用されます。NooBaa デーモンは Kubernetes ノードにデプロイできます。これは、StatefulSet Pod で構成される Kubernetes プールを作成して実行できます。
手順
Mult-Cloud Object Gateway ユーザーインターフェースの Overview ページで、 Add Storage Resources をクリックします。
ウィンドウから Deploy Kubernetes Pool をクリックします。
Create Pool 手順で、今後インストールされるノードのターゲットプールを作成します。
Configure 手順で、要求される Pod 数と各 PV のサイズを設定します。新規 Pod ごとに、1 つの PV が作成されます。
- Review 手順で、新規プールの詳細を検索し、ローカルまたは外部デプロイメントのいずれかの使用するデプロイメント方法を選択します。ローカルデプロイメントが選択されている場合、Kubernetes ノードはクラスター内にデプロイされます。外部デプロイメントが選択されている場合、外部で実行するための YAML ファイルが提供されます。
すべてのノードは最初の手順で選択したプールに割り当てられ、Resources → Storage resources → Resource name の下で確認できます。
7.7.3. 2 つの異なるクラスター間でのバケットの展開 [テクノロジープレビュー]
前提条件
- Multicloud Object Gateway へのアクセスのある実行中の OpenShift Container Storage Platform
- ネットワークアクセスがあり、他のクラスターの Multicloud Object Gateway と通信できる追加の実行中の OpenShift Container Platform
以下の手順では、クラスター A とクラスター B の 2 つのクラスター間でバケットを展開する方法について説明します。2 つの異なるクラスター間でバケットを展開するには、以下を行います。
7.7.3.1. クラスター B での外部 NooBaa デーモンプールの作成
クラスター A の Mult-Cloud Object Gateway ユーザーインターフェースから、Overview ページで Add Storage Resources をクリックします。
ウィンドウから Deploy Kubernetes Pool をクリックします。
Create Pool 手順で、今後インストールされるノードのターゲットプールを作成します。
Configure 手順で、要求される Pod 数と各 PV のサイズを設定します。新規 Pod ごとに、1 つの PV が作成されます。
- Review 手順で Deploy external to the Kubernetes cluster を選択し、Download YAML をクリックします。
クラスター B に接続し、以下のコマンドを実行して NooBaa デーモン Pod をクラスター A にデプロイします。
oc create namespace external oc apply -f <YAML file> -n external
<YAML file>
を直前の手順の YAML ファイルに置き換えます。
7.7.3.2. クラスター B のクラスター A へのバッキングストアとしての追加
クラスター B から以下のコマンドを実行します。
noobaa status
スクロールダウンして S3 情報を探します:
AWS_ACCESS_KEY_ID
およびAWS_SECRET_ACCESS_KEY
。次の手順のためにこの情報を保持します。INFO[0000] #----------------# INFO[0000] #- S3 Addresses -# INFO[0000] #----------------# INFO[0000] INFO[0000] ExternalDNS : [s3-noobaa.apps.aa.example.open.com] INFO[0000] ExternalIP : [https://172.29.225.78:443 https://172.29.225.78:443] INFO[0000] NodePorts : [https://192.168.0.11:32530] INFO[0000] InternalDNS : [https://s3.noobaa:443] INFO[0000] InternalIP : [https://172.30.147.221:443] INFO[0000] PodPorts : [https://10.1.4.21:6443] INFO[0000] INFO[0000] #------------------# INFO[0000] #- S3 Credentials -# INFO[0000] #------------------# INFO[0000] INFO[0000] AWS_ACCESS_KEY_ID: aTKel9GdBEGs2kBmJszM INFO[0000] AWS_SECRET_ACCESS_KEY: 3JEzHc7pCZVOAAnTTTY5bZIG12T1I2a+lHkWlhQ8 INFO[0000]
クラスター A で、Resources 画面に移動し、Add Cloud Resource をクリックします。
Add new connection を選択します。
直前の手順の Cluster B の S3 エンドポイント情報を入力します。
- ウィンドウの手順に従って、クラウドリソースの作成を完了します。
7.7.3.3. クラスター B の NooBaa システムを使用したクラスター A でのフェデレーションされたバケットの作成
Buckets に移動して Create Bucket をクリックしてから、バケット名を設定します。
クラスター A のローカルストレージのミラーを使用して作成したバッキングストアを選択します。
フェデレーションされたバケットにアップロードされたオブジェクトは、クラスター A とクラスター B の間でミラーリングされます。
7.7.3.4. ローカリティーの最適化に向けたリージョンの割り当て
クラスター A で、Resources に移動します。
各リソースをクリックし、リージョンを割り当てます。
完了後は、以下の画像のようになります。クラスター B の外部エンドポイントおよび NooBaa システムはあるリージョンに置かれ、ローカルバッキングストアは別のリージョンに置かれます。
7.7.3.5. クラスターの管理
クラスター A 上のアプリケーションは、ローカル S3 エンドポイントを使用してフェデレーションされたバケットを使用します。
noobaa status
INFO[0000] #----------------# INFO[0000] #- S3 Addresses -# INFO[0000] #----------------# INFO[0000] INFO[0000] ExternalDNS : [s3-noobaa.apps.aa.example.open.com] INFO[0000] ExternalIP : [https://172.29.225.78:443 https://172.29.225.78:443] INFO[0000] NodePorts : [https://192.168.0.11:32530] INFO[0000] InternalDNS : [https://s3.noobaa:443] INFO[0000] InternalIP : [https://172.30.147.221:443] INFO[0000] PodPorts : [https://10.1.4.21:6443] INFO[0000] INFO[0000] #------------------# INFO[0000] #- S3 Credentials -# INFO[0000] #------------------# INFO[0000] INFO[0000] AWS_ACCESS_KEY_ID: aTKel9GdBEGs2kBmJszM INFO[0000] AWS_SECRET_ACCESS_KEY: 3JEzHc7pCZVOAAnTTTY5bZIG12T1I2a+lHkWlhQ8 INFO[0000]
クラスター B のアプリケーションは同じ認証情報を使用する必要がありますが、エンドポイント URL はローカルの S3 サービスである必要があります。
oc get service -n external
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE s3 LoadBalancer 172.30.18.172 s3-external.apps.aa.example.opentlc.com 80:32741/TCP,443:30949/TCP 4m