第10章 クロスサイトレプリケーションの設定
Data Grid クラスター間でデータをバックアップするようにクロスサイトレプリケーションを設定して、Data Grid Operator でのサービスの可用性を確保します。
10.1. Data Grid Operator を使用したクロスサイト接続の管理 リンクのコピーリンクがクリップボードにコピーされました!
1 つのデータセンターの Data Grid Operator は、Data Grid Operator が別のデータセンターで管理する Data Grid クラスターを検出できます。この検出により、Data Grid は自動的にクロスサイトビューを形成し、グローバルクラスターを作成できます。
以下の図は、Data Grid Operator がニューヨーク市 NYC のデータセンターで Data Grid クラスターを管理している例を示しています。Data Grid Operator は、ロンドンにある別のデータセンター LON でも、Data Grid クラスターを管理しています。
Data Grid Operator は、Kubernetes API を使用して、NYC と LON の OpenShift Container Platform クラスター間の安全な接続を確立します。その後、Data Grid Operator はクロスサイトレプリケーションサービスを作成し、Data Grid クラスターが複数の場所にまたがってデータをバックアップできるようにします。
各 OpenShift クラスターの Data Grid Operator には、リモート Kubernetes API へのネットワークアクセスが必要です。
自動接続を設定すると、Data Grid Operator が設定内のすべてのバックアップの場所を検出するまで、Data Grid クラスターの実行は開始されません。
各 Data Grid クラスターには、すべてのバックアップ要求を調整する 1 つのサイトマスターノードがあります。Data Grid Operator はサイトマスターノードを特定し、クロスサイトレプリケーションサービスを介したすべてのトラフィックがサイトマスターに送られるようにします。
現在のサイトマスターノードがオフラインになると、新規のノードがサイトマスターになります。Data Grid Operator は新しいサイトマスターノードを自動的に検出し、クロスサイトレプリケーションサービスを更新してバックアップ要求をノードに転送します。
10.1.1. サービスアカウントトークンの作成 リンクのコピーリンクがクリップボードにコピーされました!
バックアップの場所として動作する各 OpenShift クラスターでサービスアカウントトークンを生成します。クラスターはこれらのトークンを使用して相互に認証するため、Data Grid Operator はクロスサイトレプリケーションサービスを作成できます。
手順
- OpenShift クラスターにログインします。
サービスアカウントを作成します。
たとえば、LON でサービスアカウントを作成します。
oc create sa lon
$ oc create sa lon serviceaccount/lon created
Copy 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>:lon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードポートサービスを使用してネットワーク上で 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 クラスターで直前の手順を繰り返します。
10.1.2. サービスアカウントトークンの交換 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift クラスターでサービスアカウントトークンを作成したら、それらを各バックアップの場所のシークレットに追加します。たとえば、LON で NYC のサービスアカウントトークンを追加します。NYC で LON のサービスアカウントトークンを追加します。
前提条件
各サービスアカウントからトークンを取得します。
以下のコマンドを使用するか、OpenShift Web コンソールからトークンを取得します。
oc sa get-token lon
$ 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 クラスターで直前の手順を繰り返します。
10.1.3. クロスサイト接続を処理するための Data Grid Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid クラスターでクロスサイトビューを確立するように Data Grid Operator を設定します。
前提条件
- 各バックアップの場所のサービスアカウントトークンを含むシークレットを作成します。
手順
-
各 Data Grid クラスターに
Infinispan
CR を作成します。 -
ローカルサイトの名前を
spec.service.sites.local.name
で指定します。 -
spec.service.sites.local.expose.type
フィールドの値をNodePort
またはLoadBalancer
のいずれかに設定します。 必要に応じて、以下のフィールドを使用してポートを設定します。
-
spec.service.sites.local.expose.nodePort
(NodePort
を使用する場合) -
spec.service.sites.local.expose.port
(LoadBalancer
を使用する場合)
-
-
spec.service.sites.locations
でバックアップの場所として動作する各 Data Grid クラスターの名前、URL、およびシークレットを指定します。 リモートサイトの Data Grid クラスター名または namespace がローカルサイトに一致しない場合は、それらの値を
clusterName
およびnamespace
フィールドで指定します。以下は、LON および NYC の
Infinispan
CR 定義の例になります。LON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NYC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要JGroups TCP および RELAY2 プロトコルのログレベルを下げるために、
Infinispan
CR のロギングカテゴリーを調整してください。これにより、多数のログファイルがコンテナーストレージを使用することを防ぎます。spec: logging: categories: org.jgroups.protocols.TCP: error org.jgroups.protocols.relay.RELAY2: error
spec: logging: categories: org.jgroups.protocols.TCP: error org.jgroups.protocols.relay.RELAY2: error
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
他の Data Grid サービスリソースで
Infinispan
CR を設定してから、変更を適用します。 Data Grid クラスターがクロスサイトビューを形成することを確認します。
Infinispan
CR を取得します。oc get infinispan -o yaml
$ oc get infinispan -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
type: CrossSiteViewFormed
条件を確認します。
次のステップ
クラスターがクロスサイトビューを形成している場合は、バックアップの場所をキャッシュに追加し始めることができます。
10.1.4. 管理対象クロスサイト接続のリソース リンクのコピーリンクがクリップボードにコピーされました!
このトピックでは、Data Grid Operator が管理するクロスサイト接続のリソースについて説明します。
フィールド | 説明 |
---|---|
| Data Grid は、Data Grid サービスクラスターのみでクロスサイトレプリケーションをサポートします。 |
| Data Grid クラスターが実行されるローカルサイトに名前を付けます。 |
|
クロスサイトレプリケーションのネットワークサービスを指定します。Data Grid クラスターは、このサービスを使用して通信し、バックアップ操作を実行します。この値は |
|
|
|
|
| すべてのバックアップの場所の接続情報を提供します。 |
|
|
| バックアップの場所の Kubernetes API の URL を指定します。 |
| バックアップサイトのサービスアカウントトークンが含まれるシークレットを指定します。 |
| ローカルサイトのクラスター名と異なる場合は、バックアップの場所でクラスター名を指定します。 |
| ローカルサイトの namespace に一致しない場合は、バックアップの場所にある Data Grid クラスターの namespace を指定します。 |