13.3. 手动配置跨站点连接

您可以指定静态网络连接详情,以便使用在 OpenShift 外部运行的 Data Grid 集群来执行跨站点复制。在访问 Kubernetes API 的任何场景中,在运行 Data Grid 的 OpenShift 集群外都不需要手动跨站点连接。

先决条件

  • 确定适合用于跨站点复制的公开类型。
    如果使用 OpenShift 路由,您必须添加带有 TLS 证书的密钥存储和安全跨站点连接。
  • 确保每个 Data Grid 集群和每个 < cluster-name>-site 服务都 有正确的主机名和端口。

    手动连接 Data Grid 集群以形成跨站点视图,需要 Data Grid 服务的可预测网络位置,这意味着您需要在创建网络位置前了解网络位置。

流程

  1. 为每个 Data Grid 集群创建一个 Infinispan CR。
  2. 使用 spec.service.sites.local.name 指定本地站点的名称。
  3. 为跨站点复制配置公开类型。

    1. spec.service.sites.local.expose.type 字段的值设置为以下之一:

      • NodePort
      • LoadBalancer
      • Route
    2. 另外,还可使用以下字段指定端口或自定义主机名:

      • 如果使用 NodePort 服务,spec.service.sites.local.expose.nodePort
      • spec.service.sites.local.expose.port (如果使用 LoadBalancer 服务)。
      • 如果使用 OpenShift 路由spec.service.sites.local.expose.routeHostName
  4. 为每个 Data Grid 集群提供名称和静态 URL,它们充当 spec.service.sites.locations 的备份位置,例如:

    • LON

      apiVersion: infinispan.org/v1
      kind: Infinispan
      metadata:
        name: infinispan
      spec:
        replicas: 3
        service:
          type: DataGrid
          sites:
            local:
              name: LON
              expose:
                type: LoadBalancer
                port: 65535
              maxRelayNodes: 1
            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: infinispan
      spec:
        replicas: 2
        service:
          type: DataGrid
          sites:
            local:
              name: NYC
              expose:
                type: LoadBalancer
                port: 65535
              maxRelayNodes: 1
            locations:
              - name: LON
                url: infinispan+xsite://infinispan-lon.myhost.com
        logging:
          categories:
            org.jgroups.protocols.TCP: error
            org.jgroups.protocols.relay.RELAY2: error
      重要

      务必调整 Infinispan CR 中的日志类别,以降低 JGroups TCP 和 RELAY2 协议的日志级别。这可防止大量日志文件使用容器存储。

      spec:
        logging:
          categories:
            org.jgroups.protocols.TCP: error
            org.jgroups.protocols.relay.RELAY2: error
  5. 使用任何其他 Data Grid 服务资源配置 Infinispan CR,然后应用更改。
  6. 验证 Data Grid 集群是否组成了跨站点视图。

    1. 检索 Infinispan CR。

      oc get infinispan -o yaml
    2. 检查 type: CrossSiteViewFormed 条件。

后续步骤

如果您的集群形成了跨站点视图,您可以开始向缓存添加备份位置。