13.3. 手动配置跨站点连接
您可以指定静态网络连接详情,以使用 OpenShift 外部运行的 Data Grid 集群执行跨站点复制。在任何情况下,需要手动跨站点连接,其中运行 Data Grid 的 OpenShift 集群外访问 Kubernetes API。
先决条件
-
为跨站点复制确定合适的公开类型。
如果使用 OpenShiftRoute,您必须添加带有 TLS 证书的密钥存储和安全跨站点连接。 确保每个 Data Grid 集群和每个 <
cluster-name>-site服务都有正确的主机名和端口。手动连接数据网格集群以跨站点视图需要可预测的数据网格服务网络位置,这意味着您需要在创建前知道网络位置。
流程
-
为每个 Data Grid 集群创建一个
InfinispanCR。 -
使用
spec.service.sites.local.name指定本地站点的名称。 为跨站点复制配置公开类型。
将
spec.service.sites.local.expose.type字段的值设置为以下之一:-
NodePort -
LoadBalancer -
Route
-
(可选)使用以下字段指定端口或自定义主机名:
-
如果使用
NodePort服务,spec.service.sites.local.expose.nodePort。 -
如果使用
LoadBalancer服务,则spec.service.sites.local.expose.port。 -
如果使用 OpenShift
Route,则spec.service.sites.local.expose.routeHostName。
-
如果使用
提供作为带有
spec.service.sites.locations的备份位置的每个 Data Grid 集群的名称和静态 URL,例如:LON
apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: infinispan spec: replicas: 3 version: <Data Grid_version> 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: errorNYC
apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: infinispan spec: replicas: 2 version: <Data Grid_version> 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重要务必调整
InfinispanCR 中的日志类别,以减少 JGroups TCP 和 RELAY2 协议的日志级别。这可防止大量日志文件使用容器存储。spec: logging: categories: org.jgroups.protocols.TCP: error org.jgroups.protocols.relay.RELAY2: error
-
使用任何其他 Data Grid 服务资源配置
InfinispanCR,然后应用更改。 验证 Data Grid 集群是否形成跨站点视图。
检索
InfinispanCR。oc get infinispan -o yaml-
检查
type: CrossSiteViewFormed条件。
后续步骤
如果您的集群有一个跨站点视图,您可以开始向缓存添加备份位置。