13.2. 管理対象のクロスサイトレプリケーション
Data Grid Operator は、異なるデータセンターで実行している Data Grid クラスターを検出し、グローバルクラスターを形成できます。
管理対象のクロスサイト接続を設定する場合には、Data Grid Operator は各 Data Grid クラスターにルーター Pod を作成します。Data Grid Pod は <cluster_name>-site サービスを使用してこれらのルーター Pod に接続し、バックアップ要求を送信します。
ルーター Pod はすべての Pod IP アドレスのレコードを保持し、RELAY メッセージヘッダーを解析し、バックアップ要求を正しい Data Grid クラスターに転送します。ルーター Pod がクラッシュすると、OpenShift が復元するまで、Data Grid Pod はいずれも、他に利用可能なルーター Pod を使用し出します。
クロスサイト接続を管理するために、Data Grid Operator は Kubernetes API を使用します。各 OpenShift クラスターには、各バックアップクラスターのネットワークアクセスが必要です。
Data Grid クラスターは、Data Grid Operator が設定するすバックアップの場所が検出されるまで実行は開始しません。
13.2.1. 管理対象クロスサイト接続用のサービスアカウントトークンの作成 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Operator が Data Grid クラスターを自動的に検出し、クロスサイト接続を管理できるように OpenShift クラスターでサービスアカウントトークンを生成します。
前提条件
すべての OpenShift クラスターが Kubernetes API にアクセスできることを確認します。
Data Grid Operator はこの API を使用してクロスサイト接続を管理します。注記Data Grid Operator はリモート Data Grid クラスターを変更しません。サービスアカウントトークンは、Kubernetes API 経由で読み取り専用のアクセスを提供します。
手順
- OpenShift クラスターにログインします。
サービスアカウントを作成します。
たとえば、LON でサービスアカウントを作成します。
oc create sa lon serviceaccount/lon created
oc create sa lon serviceaccount/lon createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、ビューロールをサービスアカウントに追加します。
oc policy add-role-to-user view system:serviceaccount:<namespace>:lon
oc policy add-role-to-user view system:serviceaccount:<namespace>:lonCopy to Clipboard Copied! Toggle word wrap Toggle overflow NodePortサービスを使用してネットワーク上で Data Grid クラスターを公開する場合、cluster-readerロールをサービスアカウントに追加する必要もあります。oc adm policy add-cluster-role-to-user cluster-reader -z <service-account-name> -n <namespace>
oc adm policy add-cluster-role-to-user cluster-reader -z <service-account-name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 他の OpenShift クラスターで直前の手順を繰り返します。
- 各 OpenShift クラスターでサービスアカウントトークンを交換します。
13.2.2. サービスアカウントトークンの交換 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift クラスターでサービスアカウントトークンを作成したら、それらを各バックアップの場所のシークレットに追加します。たとえば、LON で NYC のサービスアカウントトークンを追加します。NYC で LON のサービスアカウントトークンを追加します。
前提条件
各サービスアカウントからトークンを取得します。
以下のコマンドを使用するか、OpenShift Web コンソールからトークンを取得します。
oc sa get-token lon eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
oc sa get-token lon eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
- OpenShift クラスターにログインします。
以下のコマンドを使用して、バックアップの場所のサービスアカウントトークンを追加します。
oc create secret generic <token-name> --from-literal=token=<token>
oc create secret generic <token-name> --from-literal=token=<token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、NYC で OpenShift クラスターにログインし、以下のように
lon-tokenシークレットを作成します。oc create secret generic lon-token --from-literal=token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
oc create secret generic lon-token --from-literal=token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 他の OpenShift クラスターで直前の手順を繰り返します。
13.2.3. 管理対象のクロスサイト接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid クラスターでクロスサイトビューを確立するように Data Grid Operator を設定します。
前提条件
-
Determine a suitable expose type for cross-site replication.
OpenShiftRouteを使用する場合は、TLS 証明書と安全なクロスサイト接続を備えたキーストアを追加する必要があります。 - 各 Data Grid クラスターに Red Hat OpenShift サービスアカウントトークンを作成して交換します。
手順
-
各 Data Grid クラスターに
InfinispanCR を作成します。 -
ローカルサイトの名前を
spec.service.sites.local.nameで指定します。 クロスサイトレプリケーションの公開タイプを設定します。
spec.service.sites.local.expose.typeフィールドの値を次のいずれかに設定します。-
NodePort -
LoadBalancer -
ルート
-
オプションで、次のフィールドを使用してポートまたはカスタムホスト名を指定します。
-
NodePortサービスを使用する場合のspec.service.sites.local.expose.nodePort。 -
LoadBalancerサービスを使用する場合のspec.service.sites.local.expose.port。 -
OpenShift
Routeを使用する場合は、spec.service.sites.local.expose.routeHostNameを使用します。
-
RELAY メッセージを
service.sites.local.maxRelayNodesフィールドで送信できる Pod の数を指定します。ヒントパフォーマンス向上のため
RELAYメッセージを送信するようにクラスター内のすべての Pod を設定します。すべての Pod がバックアップ要求を直接送信する場合には、バックアップ要求を転送する必要はありません。-
spec.service.sites.locationsでバックアップの場所として動作する各 Data Grid クラスターの名前、URL、およびシークレットを指定します。 リモートサイトの Data Grid クラスター名または namespace がローカルサイトに一致しない場合は、それらの値を
clusterNameおよびnamespaceフィールドで指定します。以下は、LON および NYC の
InfinispanCR 定義の例になります。LON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NYC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要JGroups TCP および RELAY2 プロトコルのログレベルを下げるために、
InfinispanCR のロギングカテゴリーを調整してください。これにより、多数のログファイルがコンテナーストレージを使用することを防ぎます。spec: logging: categories: org.jgroups.protocols.TCP: error org.jgroups.protocols.relay.RELAY2: errorspec: logging: categories: org.jgroups.protocols.TCP: error org.jgroups.protocols.relay.RELAY2: errorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
他の Data Grid サービスリソースで
InfinispanCR を設定してから、変更を適用します。 Data Grid クラスターがクロスサイトビューを形成することを確認します。
InfinispanCR を取得します。oc get infinispan -o yaml
oc get infinispan -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
type: CrossSiteViewFormed条件を確認します。
次のステップ
クラスターがクロスサイトビューを形成している場合は、バックアップの場所をキャッシュに追加し始めることができます。