10.2. Data Grid クラスターの手動接続

静的ネットワーク接続の詳細を指定して、OpenShift の外部で実行される Data Grid クラスターでクロスサイトレプリケーションを実行できます。Data Grid が実行される OpenShift クラスターの外部で Kubernetes API にアクセスできないというシナリオでは、手動でのクロスサイト接続が必要です。

同じ Infinispan CR の Data Grid クラスターには、自動接続と手動接続の両方を使用できます。ただし、Data Grid クラスターが、各サイトで同じ方法で接続を確立することを確認する必要があります。

前提条件

Data Grid クラスターを手動で接続してクロスサイトビューを形成するには、Data Grid サービスの予測可能なネットワークの場所が必要です。

ネットワークの場所は、作成する前に知っておく必要があります。そのためには、以下が必要です。

  • バックアップの場所として設定する予定の各 Data Grid クラスターのホスト名とポートがあります。
  • OpenShift で実行されているリモート Data Grid クラスターの <cluster-name>-site サービスのホスト名があります。
    <cluster-name>-site サービスを使用して、Data Grid Operator が管理するクラスターと他のクラスター間でクロスサイトビューを形成する必要があります。

手順

  1. 各 Data Grid クラスターに Infinispan CR を作成します。
  2. ローカルサイトの名前を spec.service.sites.local.name で指定します。
  3. spec.service.sites.local.expose.type フィールドの値を NodePort または LoadBalancer のいずれかに設定します。
  4. 必要に応じて、以下のフィールドを使用してポートを設定します。

    • spec.service.sites.local.expose.nodePort (NodePort を使用する場合)
    • spec.service.sites.local.expose.port (LoadBalancer を使用する場合)
  5. spec.service.sites.locations でバックアップの場所として動作する各 Data Grid クラスターの名前と静的 URL を指定します。以下に例を示します。

    • LON

      apiVersion: infinispan.org/v1
      kind: Infinispan
      metadata:
        name: example-infinispan
      spec:
        replicas: 3
        service:
          type: DataGrid
          sites:
            local:
              name: LON
              expose:
                type: LoadBalancer
                port: 65535
            locations:
              - name: NYC
                url: infinispan+xsite://infinispan-nyc.myhost.com:7900
        logging:
          categories:
            org.jgroups.protocols.TCP: error
            org.jgroups.protocols.relay.RELAY2: error
    • NYC

      apiVersion: infinispan.org/v1
      kind: Infinispan
      metadata:
        name: example-infinispan
      spec:
        replicas: 2
        service:
          type: DataGrid
          sites:
            local:
              name: NYC
              expose:
                type: LoadBalancer
                port: 65535
            locations:
              - name: LON
                url: infinispan+xsite://infinispan-lon.myhost.com
        logging:
          categories:
            org.jgroups.protocols.TCP: error
            org.jgroups.protocols.relay.RELAY2: error
      重要

      JGroups TCP および RELAY2 プロトコルのログレベルを下げるために、Infinispan CR のロギングカテゴリーを調整してください。これにより、多数のログファイルがコンテナーストレージを使用することを防ぎます。

      spec:
        logging:
          categories:
            org.jgroups.protocols.TCP: error
            org.jgroups.protocols.relay.RELAY2: error
  6. 他の Data Grid サービスリソースで Infinispan CR を設定してから、変更を適用します。
  7. Data Grid クラスターがクロスサイトビューを形成することを確認します。

    1. Infinispan CR を取得します。

      $ oc get infinispan -o yaml
    2. type: CrossSiteViewFormed 条件を確認します。

次のステップ

クラスターがクロスサイトビューを形成している場合は、バックアップの場所をキャッシュに追加し始めることができます。

10.2.1. 手動のクロスサイト接続のリソース

このトピックでは、手動で管理するクロスサイト接続のリソースについて説明します。

spec:
  service:
    type: DataGrid
    sites:
      local:
        name: LON
        expose:
          type: LoadBalancer
          port: 65535
      locations:
      - name: NYC
        url: infinispan+xsite://infinispan-nyc.myhost.com:7900
フィールド説明

service.type:DataGrid

Data Grid は、Data Grid サービスクラスターのみでクロスサイトレプリケーションをサポートします。

service.sites.local.name

Data Grid クラスターが実行されるローカルサイトに名前を付けます。

service.sites.local.expose.type

クロスサイトレプリケーションのネットワークサービスを指定します。Data Grid クラスターは、このサービスを使用して通信し、バックアップ操作を実行します。この値は NodePort または LoadBalancer に設定できます。

service.sites.local.expose.nodePort

NodePort サービス経由で Data Grid を公開する場合、デフォルトの範囲内の 30000 から 32767 の静的ポートを指定します。ポートを指定しないと、プラットフォームは利用可能なポートを選択します。

service.sites.local.expose.port

LoadBalancer 経由で Data Grid を公開する場合、サービスのネットワークポートを指定します。デフォルトのポートは 7900 です。

service.sites.locations

すべてのバックアップの場所の接続情報を提供します。

service.sites.locations.name

.spec.service.sites.local.name に一致するバックアップの場所を指定します。

service.sites.locations.url

infinispan+xsite://<hostname>:<port> の形式でバックアップの場所の静的 URL を指定します。デフォルトのポートは 7900 です。