使用 Helm 构建和部署 Data Grid 集群


Red Hat Data Grid 8.4

在 OpenShift 中创建 Data Grid 集群

Red Hat Customer Content Services

摘要

使用 Helm 构建和部署 Data Grid 集群。

Red Hat Data Grid

数据网格是高性能分布式内存数据存储。

Schemaless 数据结构
灵活性以将不同对象存储为键值对。
基于网格的数据存储
旨在在集群中分发和复制数据。
弹性扩展
动态调整节点数量,以在不中断服务的情况下满足需求。
数据互操作性
从不同端点在网格中存储、检索和查询数据。

Data Grid 文档

红帽客户门户网站中提供了数据网格的文档。

Data Grid 下载

访问红帽客户门户网站中的 Data Grid 软件下载

注意

您必须有一个红帽帐户才能访问和下载 Data Grid 软件。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户网站。

要从客户门户网站提交文档反馈,请执行以下操作:

  1. 选择 Multi-page HTML 格式。
  2. 点文档右上角的 反馈 按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 点高亮文本旁的添加反馈对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后单击 Submit

每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。

感谢您的宝贵反馈。

使用 Helm 构建、配置和部署 Data Grid 集群。数据网格提供了一个 Helm Chart,用于打包在 OpenShift 中运行 Data Grid 集群的资源。

安装 Data Grid chart 来创建 Helm 发行版本,以实例化 OpenShift 项目中的 Data Grid 集群。

1.1. 通过 OpenShift 控制台安装 Data Grid chart

使用 OpenShift Web 控制台从红帽开发人员目录中安装 Data Grid chart。安装 chart 会创建一个 Helm 发行版本,用于部署 Data Grid 集群。

先决条件

  • 具有 OpenShift 的访问权限。

流程

  1. 登录 OpenShift Web 控制台。
  2. 选择 Developer 视角。
  3. 打开 Add 视图,然后选择 Helm Chart 以浏览 Red Hat developer 目录。
  4. 找到并选择 Data Grid chart。
  5. 为 chart 指定名称并选择一个版本。
  6. 在 Data Grid chart 的以下部分中定义值:

    • 镜像 将容器镜像配置为在为 Data Grid 集群创建 pod 时使用。
    • 部署配置 您的数据网格集群。

      提示

      要找到每个值的描述,请选择 YAML view 选项并访问 schema。编辑 yaml 配置以自定义您的 Data Grid chart。

  7. 选择 Install

验证

  1. Developer 视角中选择 Helm 视图。
  2. 选择您创建的 Helm 发行版本来查看详情、资源和其他信息。

1.2. 在命令行中安装 Data Grid chart

使用命令行在 OpenShift 上安装 Data Grid chart,并实例化 Data Grid cluster。安装 chart 会创建一个 Helm 发行版本,用于部署 Data Grid 集群。

先决条件

流程

  1. 创建一个值文件来配置您的 Data Grid 集群。

    例如,以下值文件创建带有两个节点的集群:

    $ cat > infinispan-values.yaml<<EOF
    #Build configuration
    images:
      server: registry.redhat.io/datagrid/datagrid-8-rhel8:latest
      initContainer: registry.access.redhat.com/ubi8-micro
    #Deployment configuration
    deploy:
      #Add a user with full security authorization.
      security:
        batch: "user create admin -p changeme"
      #Create a cluster with two pods.
      replicas: 2
    EOF
    Copy to Clipboard Toggle word wrap
  2. 安装 Data Grid chart 并指定您的值文件。

    $ helm install infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
    Copy to Clipboard Toggle word wrap
提示

使用 --set 标志覆盖部署的配置值。例如,创建具有三个节点的集群:

--set deploy.replicas=3
Copy to Clipboard Toggle word wrap

验证

观察 pod,以确保 Data Grid 集群中的所有节点都创建成功。

$ oc get pods -w
Copy to Clipboard Toggle word wrap

1.3. 升级 Data Grid Helm 发行版本

通过升级 Helm 发行版本,在运行时修改您的 Data Grid 集群配置。

先决条件

  • 部署数据网格图表。
  • 具有 helm 客户端。
  • oc 客户端。

流程

  1. 根据需要修改 Data Grid 部署的值文件。
  2. 使用 helm 客户端应用您的更改,例如:

    $ helm upgrade infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
    Copy to Clipboard Toggle word wrap

验证

观察 pod 重建以确保所有更改都成功应用于您的 Data Grid 集群。

$ oc get pods -w
Copy to Clipboard Toggle word wrap

1.4. 卸载 Data Grid Helm 发行版本

卸载数据网格图表的发行版本,以删除 pod 和其他部署工件。

注意

此流程演示了如何在命令行中卸载 Data Grid 部署,但您可以使用 OpenShift Web 控制台。具体步骤请参阅 OpenShift 文档。

先决条件

  • 部署数据网格图表。
  • 具有 helm 客户端。
  • oc 客户端。

流程

  1. 列出已安装的 Data Grid Helm 发行版本。

    $ helm list
    Copy to Clipboard Toggle word wrap
  2. 使用 helm 客户端卸载发行版本并删除 Data Grid 集群:

    $ helm uninstall <helm_release_name>
    Copy to Clipboard Toggle word wrap
  3. 使用 oc 客户端删除生成的 secret。

    $ oc delete secret <helm_release_name>-generated-secret
    Copy to Clipboard Toggle word wrap

1.5. 部署配置值

部署配置值可让您自定义 Data Grid 集群。

提示

您还可以在 Data Grid chart README 中找到字段和值描述。

Expand
字段Description默认值

deploy.replicas

指定 Data Grid 集群中的节点数量,并为每个节点创建一个 pod。

1

deploy.container.extraJvmOpts

将 JVM 选项传递给 Data Grid 服务器。

没有默认值。

deploy.container.libraries

服务器启动前要下载的库。指定以 URL 或 Maven 协调代表的多个、以空格分隔的工件。将提取 .tar、.tar.gz 或 .zip 格式的工件。

没有默认值。

deploy.container.storage.ephemeral

定义存储是否为临时还是永久。

默认值为 false,即数据是永久的。将值设为 true 以使用临时存储,这意味着集群关闭或重启时所有数据都会删除。

deploy.container.storage.size

定义为每个 Data Grid pod 分配多少存储。

1Gi

deploy.container.storage.storageClassName

指定用于持久性卷声明(PVC)的 StorageClass 对象的名称。

没有默认值。默认情况下,持久性卷声明使用 storageclass.kubernetes.io/is-default-class 注解的存储类设置为 true。如果包含此字段,您必须指定一个现有存储类作为值。

deploy.container.resources.limits.cpu

定义每个 Data Grid pod 的 CPU 限值(CPU 单位)。

500m

deploy.container.resources.limits.memory

为每个 Data Grid pod 定义最大内存量(以字节为单位)。

512Mi

deploy.container.resources.requests.cpu

指定每个 Data Grid pod 的最大 CPU 请求(以 CPU 单元为单位)。

500m

deploy.container.resources.requests.memory

为每个 Data Grid pod 指定最大内存请求(以字节为单位)。

512Mi

deploy.security.secretName

指定创建凭证并配置安全授权的 secret 名称。

没有默认值。如果您创建自定义安全 secret,则 deploy.security.batch 不起作用。

deploy.security.batch

为 Data Grid 命令行界面(CLI)提供批处理文件,以便在启动时创建凭据并配置安全授权。

没有默认值。

deploy.expose.type

指定在网络上公开 Hot Rod 和 REST 端点的服务,并提供对 Data Grid 集群的访问,包括数据网格控制台。

路由 Valid 选项为: "" ( 空值)、RouteLoadBalancerNodePort。如果您不想在网络上公开 Data Grid,则设置一个空值("")。

deploy.expose.nodePort

为默认范围 30000 到 32767 的节点端口服务指定网络端口。

0 如果没有指定端口,平台会选择一个可用的端口。

deploy.expose.host

(可选)指定公开路由的主机名。

没有默认值。

deploy.expose.annotations

为网络公开 Data Grid 的服务添加注解。

没有默认值。

deploy.logging.categories

配置 Data Grid 集群日志类别和级别。

没有默认值。

deploy.podLabels

为每个您创建的 Data Grid pod 添加标签。

没有默认值。

deploy.svcLabels

为您创建的每个服务添加标签。

没有默认值。

deploy.resourceLabels

在所有 Data Grid 资源(包括 pod 和服务)添加标签。

没有默认值。

deploy.makeDataDirWritable

允许为每个 Data Grid Server 节点写入 数据目录

如果将此值设置为 true,Data Grid 会创建一个 initContainer,它在 /opt/infinispan/server/data 目录中运行 chmod -R 来改变权限。

deploy.nameOverride

指定所有 Data Grid 集群资源的名称。

Helm Chart 发行版本名称。

deploy.infinispan

数据网格服务器配置.

数据网格提供默认服务器配置。有关配置服务器实例的更多信息,请参阅 Data Grid Server 配置值

第 2 章 配置数据网格服务器

将自定义数据网格服务器配置应用到您的部署。

2.1. 自定义数据网格服务器配置

将自定义 deploy.infinispan 值应用到 Data Grid 集群,该集群配置缓存管理器和底层服务器机制,如安全域或 Hot Rod 和 REST 端点。

重要

修改 deploy.infinispan 值时,您必须始终提供完整的 Data Grid Server 配置。

注意

如果您想为 Data Grid 集群使用监控功能,则不要修改或删除默认"metrics"配置。

流程

根据需要修改 Data Grid Server 配置:

  • 使用 deploy.infinispan.cacheContainer 字段为 Cache Manager 指定配置值。

    例如,您可以使用任何数据网格配置在启动时创建缓存,或添加缓存模板并使用它们根据需要创建缓存。

  • 使用 deploy.infinispan.cacheContainer.security.authorization 字段配置安全授权以控制用户角色和权限。
  • 选择其中一个默认 JGroups 堆栈,或使用 deploy.infinispan.cacheContainer.transport 字段配置集群传输。
  • 使用 deploy.infinispan.server.endpoints 字段配置 Data Grid Server 端点。
  • 使用 deploy.infinispan.server.interfacesdeploy.infinispan.server.socketBindings 字段配置 Data Grid Server 网络接口和端口。
  • 使用 deploy.infinispan.server.security 字段配置 Data Grid Server 安全机制。

    注意

    Data Grid chart 目前不支持 TLS/SSL 安全域和加密客户端连接。

2.2. Data Grid Server 配置值

Data Grid Server 配置值可让您自定义缓存管理器并修改在 OpenShift pod 中运行的服务器实例。

Data Grid 服务器配置

deploy:
  infinispan:
    cacheContainer:
    # [USER] Add cache, template, and counter configuration.
    name: default
    # [USER] Specify `security: null` to disable security authorization.
    security:
      authorization: {}
    transport:
      cluster: ${infinispan.cluster.name:cluster}
      node-name: ${infinispan.node.name:}
      stack: kubernetes
    server:
      endpoints:
        # [USER] Hot Rod and REST endpoints.
        - securityRealm: default
          socketBinding: default
        # [METRICS] Metrics endpoint for cluster monitoring capabilities.
        - connectors:
            rest:
              restConnector:
                authentication:
                  mechanisms: BASIC
          securityRealm: metrics
          socketBinding: metrics
      interfaces:
      - inetAddress:
          value: ${infinispan.bind.address:127.0.0.1}
        name: public
      security:
        credentialStores:
        - clearTextCredential:
            clearText: secret
          name: credentials
          path: credentials.pfx
        securityRealms:
        # [USER] Security realm for the Hot Rod and REST endpoints.
        - name: default
          # [USER] Comment or remove this properties realm to disable authentication.
          propertiesRealm:
            groupProperties:
              path: groups.properties
            groupsAttribute: Roles
            userProperties:
              path: users.properties
          # [METRICS] Security realm for the metrics endpoint.
        - name: metrics
          propertiesRealm:
            groupProperties:
              path: metrics-groups.properties
              relativeTo: infinispan.server.config.path
            groupsAttribute: Roles
            userProperties:
              path: metrics-users.properties
              plainText: true
              relativeTo: infinispan.server.config.path
        socketBindings:
          defaultInterface: public
          portOffset: ${infinispan.socket.binding.port-offset:0}
          socketBinding:
            # [USER] Socket binding for the Hot Rod and REST endpoints.
          - name: default
            port: 11222
            # [METRICS] Socket binding for the metrics endpoint.
          - name: metrics
            port: 11223
Copy to Clipboard Toggle word wrap

数据网格缓存配置

deploy:
  infinispan:
    cacheContainer:
      distributedCache:
        name: "mycache"
        mode: "SYNC"
        owners: "2"
        segments: "256"
        capacityFactor: "1.0"
        statistics: "true"
        encoding:
          mediaType: "application/x-protostream"
        expiration:
          lifespan: "5000"
          maxIdle: "1000"
        memory:
          maxCount: "1000000"
          whenFull: "REMOVE"
        partitionHandling:
          whenSplit: "ALLOW_READ_WRITES"
          mergePolicy: "PREFERRED_NON_NULL"
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

缓存模板

deploy:
  infinispan:
    cacheContainer:
      distributedCacheConfiguration:
        name: "my-dist-template"
        mode: "SYNC"
        statistics: "true"
        encoding:
          mediaType: "application/x-protostream"
        expiration:
          lifespan: "5000"
          maxIdle: "1000"
        memory:
          maxCount: "1000000"
          whenFull: "REMOVE"
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

集群传输

deploy:
  infinispan:
    cacheContainer:
      transport:
        #Specifies the name of a default JGroups stack.
        stack: kubernetes
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

第 3 章 配置身份验证和授权

通过添加凭证并使用不同权限分配角色,来控制对 Data Grid 集群的访问。

3.1. 默认凭证

Data Grid 在 < helm_release_name>-generated-secret secret 中添加默认凭证。

Expand
用户名Description

developer

具有 admin 角色的用户,具有对 Data Grid 资源的完整访问权限。

monitor

具有 monitor 角色的用户,可通过端口 11223 访问数据网格指标。

3.1.1. 检索凭证

从身份验证 secret 获取 Data Grid 凭证。

先决条件

  • 安装 Data Grid Helm Chart。
  • oc 客户端。

流程

  • 使用以下命令从 &lt ;helm_release_name>-generated- secret 或自定义凭证检索默认凭证:

    $ oc get secret <helm_release_name>-generated-secret \
    -o jsonpath="{.data.identities-batch}" | base64 --decode
    Copy to Clipboard Toggle word wrap

3.2. 添加自定义用户凭证

创建 Data Grid 用户凭据并分配授予集群访问权限安全授权的角色。

流程

  1. 通过在 deploy.security.batch 字段中指定 user create 命令来创建凭据。

    具有隐式授权的用户

    deploy:
      security:
        batch: 'user create admin -p changeme'
    Copy to Clipboard Toggle word wrap

    具有特定角色的用户

    deploy:
      security:
        batch: 'user create personone -p changeme -g deployer'
    Copy to Clipboard Toggle word wrap

  2. 安装或升级您的 Data Grid Helm 发行版本。

3.2.1. 用户角色和权限

Data Grid 使用基于角色的访问控制来授权用户访问集群资源和数据。为提高安全性,您应该在添加凭证时为 Data Grid 用户授予适当的角色。

Expand
角色权限Description

admin

ALL

具有所有权限的超级用户,包括缓存管理器生命周期的控制。

deployer

ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR, CREATE

除了 应用程序 权限外,还可创建和删除数据网格资源。

application

ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR

观察者 权限之外,还具有对 Data Grid 资源的读写访问权限。还可以侦听事件并执行服务器任务和脚本。

observer

ALL_READ, MONITOR

除了监控权限外,还具有对数据网格 资源 的读取访问权限。

monitor

MONITOR

可以查看数据网格集群的统计信息。

3.2.2. 使用身份验证 secret 添加多个凭证

使用身份验证 secret 在 Data Grid 集群中添加多个凭证。

先决条件

  • oc 客户端。

流程

  1. 创建一个 Identity-batch 文件,其中包含用于添加凭证的命令。

    apiVersion: v1
    kind: Secret
    metadata:
      name: connect-secret
    type: Opaque
    stringData:
      # The "monitor" user authenticates with the Prometheus ServiceMonitor.
      username: monitor
      # The password for the "monitor" user.
      password: password
      # The key must be 'identities-batch'.
      # The content is "user create" commands for the Data Grid CLI.
      identities-batch: |-
        user create user1 -p changeme -g admin
        user create user2 -p changeme -g deployer
        user create monitor -p password --users-file metrics-users.properties --groups-file metrics-groups.properties
    Copy to Clipboard Toggle word wrap
  2. 从您的身份识别文件创建身份验证 secret。

    $ oc apply -f identities-batch.yaml
    Copy to Clipboard Toggle word wrap
  3. deploy.security.SecretName 字段中指定身份验证 secret。

    deploy:
      security:
        authentication: true
        secretName: 'connect-secret'
    Copy to Clipboard Toggle word wrap
  4. 安装或升级您的 Data Grid Helm 发行版本。

3.3. 禁用身份验证

允许用户在不提供凭证的情况下访问数据网格集群并操作数据。

重要

如果端点可以从 OpenShift 集群外部访问,则不要禁用身份验证。您应该只在开发环境中禁用身份验证。

流程

  1. 从"default"安全域中删除 propertiesRealm 字段。
  2. 安装或升级您的 Data Grid Helm 发行版本。

3.4. 禁用安全授权

允许数据网格用户执行任何操作,无论其角色如何。

流程

  1. null 设置为 deploy.infinispan.cacheContainer.security 字段的值。

    提示

    --set deploy.infinispan.cacheContainer.security=null 参数与 helm 客户端搭配使用。

  2. 安装或升级您的 Data Grid Helm 发行版本。

第 4 章 配置网络访问

配置数据网格部署的网络访问,并找出有关内部网络服务的信息。

4.1. 在网络上公开 Data Grid 集群

在网络上提供 Data Grid 集群,以便您可以访问 Data Grid 控制台以及 REST 和 Hot Rod 端点。默认情况下,Data Grid chart 通过路由公开部署,但您可以将其配置为通过负载均衡器或节点端口公开集群。您还可以配置 Data Grid chart,使部署不会在网络中公开,且仅在 OpenShift 集群内部可用。

流程

  1. deploy.expose.type 字段指定以下内容之一:

    Expand
    OptionDescription

    Route(路由)

    通过路由公开数据网格。这是默认值。

    LoadBalancer

    通过负载均衡器服务公开数据网格。

    NodePort

    通过节点端口服务公开数据网格。

    "" (空值)

    在网络上禁用公开数据网格。

  2. 如果通过路由公开 Data Grid,则可以选择使用 deploy.expose.host 字段指定主机名。
  3. 如果您通过节点端口服务公开 Data Grid,则可以选择使用 deploy.expose.nodePort 字段指定端口。
  4. 安装或升级您的 Data Grid Helm 发行版本。

4.2. 检索网络服务详情

获取网络服务详情,以便您可以连接到 Data Grid 集群。

先决条件

  • 在网络上公开您的数据网格集群。
  • oc 客户端。

流程

使用以下命令之一检索网络服务详情:

  • 如果您通过路由公开数据网格:

    $ oc get routes
    Copy to Clipboard Toggle word wrap
  • 如果您通过负载均衡器或节点端口服务公开数据网格:

    $ oc get services
    Copy to Clipboard Toggle word wrap

4.3. 网络服务

Data Grid chart 为内部访问创建默认网络服务。

Expand
Service端口协议Description

<helm_release_name>

11222

TCP

提供对 Data Grid Hot Rod 和 REST 端点的访问。

<helm_release_name>

11223

TCP

提供对数据网格指标的访问权限。

<helm_release_name>-ping

8888

TCP

允许 Data Grid pod 相互发现,并组成集群。

您可以检索有关内部网络服务的详细信息,如下所示:

$ oc get services

NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)
infinispan        ClusterIP   192.0.2.0        <none>        11222/TCP,11223/TCP
infinispan-ping   ClusterIP   None             <none>        8888/TCP
Copy to Clipboard Toggle word wrap

第 5 章 连接到 Data Grid 集群

在配置和部署数据网格集群后,您可以通过数据网格控制台、命令行界面(CLI)、Hot Rod 客户端或 REST API 建立远程连接。

5.1. 访问数据网格控制台

访问控制台以创建缓存、执行管理操作并监控您的 Data Grid 集群。

先决条件

  • 在网络上公开您的数据网格集群。
  • 检索网络服务详细信息。

流程

  • $SERVICE_HOSTNAME:$PORT 处从任何浏览器访问数据网格控制台。

    用网络上提供的主机名和端口替换 $SERVICE_HOSTNAME:$PORT

5.2. 使用命令行界面(CLI)进行连接。

使用 Data Grid CLI 连接集群并创建缓存、操作数据和执行管理操作。

先决条件

  • 在网络上公开您的数据网格集群。
  • 检索网络服务详细信息。
  • 从 Data Grid 软件下载,下载原生数据网格 CLI 分发。
  • 将原生数据网格 CLI 分发的 .zip 存档提取到主机文件系统。

流程

  1. 使用网络服务作为 -c 参数的值启动 Data Grid CLI,例如:

    $ {native_cli} -c http://cluster-name-myroute.hostname.net/
    Copy to Clipboard Toggle word wrap
  2. 提示时输入您的 Data Grid 凭证。
  3. 根据需要执行 CLI 操作。

    提示

    按 Tab 键,或使用 --help 参数查看可用选项和帮助文本。

  4. 使用 quit 命令退出 CLI。

5.3. 连接在 OpenShift 上运行的 Hot Rod 客户端

使用与 Data Grid 集群在同一 OpenShift 集群上运行的 Hot Rod 客户端访问远程缓存。

先决条件

  • 检索网络服务详细信息。

流程

  1. 在客户端配置中,为您的 Data Grid 集群指定内部网络服务详情。

    在以下配置示例中,$SERVICE_HOSTNAME:$PORT 表示可访问您的 Data Grid 集群的主机名和端口。

  2. 指定凭证以便客户端可以通过 Data Grid 进行身份验证。
  3. 如果需要,配置客户端智能。

    在 OpenShift 上运行的热环客户端可以使用任何客户端智能,因为它们可以访问 Data Grid Pod 的内部 IP 地址。
    建议默认智能 HASH_DISTRIBUTION_AWARE,因为它允许客户端将请求路由到主要所有者,从而提高性能。

程序配置
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.SaslQop;
import org.infinispan.client.hotrod.impl.ConfigurationProperties;
...

ConfigurationBuilder builder = new ConfigurationBuilder();
      builder.addServer()
               .host("$SERVICE_HOSTNAME")
               .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
             .security().authentication()
               .username("username")
               .password("changeme")
               .realm("default")
               .saslQop(SaslQop.AUTH)
               .saslMechanism("SCRAM-SHA-512");
Copy to Clipboard Toggle word wrap
热 Rod 客户端属性
# Connection
infinispan.client.hotrod.server_list=$SERVICE_HOSTNAME:$PORT

# Authentication
infinispan.client.hotrod.use_auth=true
infinispan.client.hotrod.auth_username=developer
infinispan.client.hotrod.auth_password=$PASSWORD
infinispan.client.hotrod.auth_server_name=$CLUSTER_NAME
infinispan.client.hotrod.sasl_properties.javax.security.sasl.qop=auth
infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

5.4. 连接在 OpenShift 外部运行的 Hot Rod 客户端

使用您部署数据网格集群的 OpenShift 集群外部运行的 Hot Rod 客户端访问远程缓存。

先决条件

  • 在网络上公开您的数据网格集群。
  • 检索网络服务详细信息。

流程

  1. 在客户端配置中,为您的 Data Grid 集群指定内部网络服务详情。

    在以下配置示例中,$SERVICE_HOSTNAME:$PORT 表示可访问您的 Data Grid 集群的主机名和端口。

  2. 指定凭证以便客户端可以通过 Data Grid 进行身份验证。
  3. 将客户端配置为使用 BASIC 智能功能。
程序配置
import org.infinispan.client.hotrod.configuration.ClientIntelligence;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.SaslQop;
...

ConfigurationBuilder builder = new ConfigurationBuilder();
      builder.addServer()
               .host("$SERVICE_HOSTNAME")
               .port("$PORT")
             .security().authentication()
               .username("username")
               .password("changeme")
               .realm("default")
               .saslQop(SaslQop.AUTH)
               .saslMechanism("SCRAM-SHA-512");
      builder.clientIntelligence(ClientIntelligence.BASIC);
Copy to Clipboard Toggle word wrap
热 Rod 客户端属性
# Connection
infinispan.client.hotrod.server_list=$SERVICE_HOSTNAME:$PORT

# Client intelligence
infinispan.client.hotrod.client_intelligence=BASIC

# Authentication
infinispan.client.hotrod.use_auth=true
infinispan.client.hotrod.auth_username=developer
infinispan.client.hotrod.auth_password=$PASSWORD
infinispan.client.hotrod.auth_server_name=$CLUSTER_NAME
infinispan.client.hotrod.sasl_properties.javax.security.sasl.qop=auth
infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

5.5. 访问 REST API

数据网格提供了一个 RESTful 接口,您可以使用 HTTP 客户端与 交互。

先决条件

  • 在网络上公开您的数据网格集群。
  • 检索网络服务详细信息。

流程

  • 使用 $SERVICE_HOSTNAME:$PORT/rest/v2 上的任何 HTTP 客户端访问 REST API。

    用网络上提供的主机名和端口替换 $SERVICE_HOSTNAME:$PORT

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat