使用 Helm 构建和部署 Data Grid 集群
Red Hat Data Grid 复制链接链接已复制到粘贴板!
数据网格是高性能分布式内存数据存储。
- Schemaless 数据结构
- 灵活性以将不同对象存储为键值对。
- 基于网格的数据存储
- 旨在在集群中分发和复制数据。
- 弹性扩展
- 动态调整节点数量,以在不中断服务的情况下满足需求。
- 数据互操作性
- 从不同端点在网格中存储、检索和查询数据。
Data Grid 文档 复制链接链接已复制到粘贴板!
红帽客户门户网站中提供了数据网格的文档。
Data Grid 下载 复制链接链接已复制到粘贴板!
访问红帽客户门户网站中的 Data Grid 软件下载。
您必须有一个红帽帐户才能访问和下载 Data Grid 软件。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。
您必须有一个红帽帐户并登录到客户门户网站。
要从客户门户网站提交文档反馈,请执行以下操作:
- 选择 Multi-page HTML 格式。
- 点文档右上角的 反馈 按钮。
- 突出显示您要提供反馈的文本部分。
- 点高亮文本旁的添加反馈对话框。
- 在页面右侧的文本框中输入您的反馈,然后单击 Submit。
每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。
感谢您的宝贵反馈。
第 1 章 将 Data Grid 集群部署为 Helm Chart 发行版本 复制链接链接已复制到粘贴板!
使用 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 的访问权限。
流程
- 登录 OpenShift Web 控制台。
- 选择 Developer 视角。
- 打开 Add 视图,然后选择 Helm Chart 以浏览 Red Hat developer 目录。
- 找到并选择 Data Grid chart。
- 为 chart 指定名称并选择一个版本。
在 Data Grid chart 的以下部分中定义值:
- 镜像 将容器镜像配置为在为 Data Grid 集群创建 pod 时使用。
部署配置 您的数据网格集群。
提示要找到每个值的描述,请选择 YAML view 选项并访问 schema。编辑 yaml 配置以自定义您的 Data Grid chart。
- 选择 Install。
验证
- 在 Developer 视角中选择 Helm 视图。
- 选择您创建的 Helm 发行版本来查看详情、资源和其他信息。
1.2. 在命令行中安装 Data Grid chart 复制链接链接已复制到粘贴板!
使用命令行在 OpenShift 上安装 Data Grid chart,并实例化 Data Grid cluster。安装 chart 会创建一个 Helm 发行版本,用于部署 Data Grid 集群。
先决条件
-
安装
helm客户端。 - 添加 OpenShift Helm Charts 仓库。
- 具有 OpenShift 集群的访问权限。
-
有
oc客户端。
流程
创建一个值文件来配置您的 Data Grid 集群。
例如,以下值文件创建带有两个节点的集群:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装 Data Grid chart 并指定您的值文件。
helm install infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
$ helm install infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 --set 标志覆盖部署的配置值。例如,创建具有三个节点的集群:
--set deploy.replicas=3
--set deploy.replicas=3
验证
观察 pod,以确保 Data Grid 集群中的所有节点都创建成功。
oc get pods -w
$ oc get pods -w
1.3. 升级 Data Grid Helm 发行版本 复制链接链接已复制到粘贴板!
通过升级 Helm 发行版本,在运行时修改您的 Data Grid 集群配置。
先决条件
- 部署数据网格图表。
-
具有
helm客户端。 -
有
oc客户端。
流程
- 根据需要修改 Data Grid 部署的值文件。
使用
helm客户端应用您的更改,例如:helm upgrade infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
$ helm upgrade infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
观察 pod 重建以确保所有更改都成功应用于您的 Data Grid 集群。
oc get pods -w
$ oc get pods -w
1.4. 卸载 Data Grid Helm 发行版本 复制链接链接已复制到粘贴板!
卸载数据网格图表的发行版本,以删除 pod 和其他部署工件。
此流程演示了如何在命令行中卸载 Data Grid 部署,但您可以使用 OpenShift Web 控制台。具体步骤请参阅 OpenShift 文档。
先决条件
- 部署数据网格图表。
-
具有
helm客户端。 -
有
oc客户端。
流程
列出已安装的 Data Grid Helm 发行版本。
helm list
$ helm listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
helm客户端卸载发行版本并删除 Data Grid 集群:helm uninstall <helm_release_name>
$ helm uninstall <helm_release_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc客户端删除生成的 secret。oc delete secret <helm_release_name>-generated-secret
$ oc delete secret <helm_release_name>-generated-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. 部署配置值 复制链接链接已复制到粘贴板!
部署配置值可让您自定义 Data Grid 集群。
您还可以在 Data Grid chart README 中找到字段和值描述。
| 字段 | Description | 默认值 |
|---|---|---|
|
| 指定 Data Grid 集群中的节点数量,并为每个节点创建一个 pod。 |
|
|
| 将 JVM 选项传递给 Data Grid 服务器。 | 没有默认值。 |
|
| 服务器启动前要下载的库。指定以 URL 或 Maven 协调代表的多个、以空格分隔的工件。将提取 .tar、.tar.gz 或 .zip 格式的工件。 | 没有默认值。 |
|
| 定义存储是否为临时还是永久。 |
默认值为 |
|
| 定义为每个 Data Grid pod 分配多少存储。 | 1Gi |
|
|
指定用于持久性卷声明(PVC)的 |
没有默认值。默认情况下,持久性卷声明使用 |
|
| 定义每个 Data Grid pod 的 CPU 限值(CPU 单位)。 | 500m |
|
| 为每个 Data Grid pod 定义最大内存量(以字节为单位)。 | 512Mi |
|
| 指定每个 Data Grid pod 的最大 CPU 请求(以 CPU 单元为单位)。 | 500m |
|
| 为每个 Data Grid pod 指定最大内存请求(以字节为单位)。 | 512Mi |
|
| 指定创建凭证并配置安全授权的 secret 名称。 |
没有默认值。如果您创建自定义安全 secret,则 |
|
| 为 Data Grid 命令行界面(CLI)提供批处理文件,以便在启动时创建凭据并配置安全授权。 | 没有默认值。 |
|
| 指定在网络上公开 Hot Rod 和 REST 端点的服务,并提供对 Data Grid 集群的访问,包括数据网格控制台。 |
|
|
| 为默认范围 30000 到 32767 的节点端口服务指定网络端口。 | 0 如果没有指定端口,平台会选择一个可用的端口。 |
|
| (可选)指定公开路由的主机名。 | 没有默认值。 |
|
| 为网络公开 Data Grid 的服务添加注解。 | 没有默认值。 |
|
| 配置 Data Grid 集群日志类别和级别。 | 没有默认值。 |
|
| 为每个您创建的 Data Grid pod 添加标签。 | 没有默认值。 |
|
| 为您创建的每个服务添加标签。 | 没有默认值。 |
|
| 在所有 Data Grid 资源(包括 pod 和服务)添加标签。 | 没有默认值。 |
|
|
允许为每个 Data Grid Server 节点写入 |
如果将此值设置为 |
|
| 指定所有 Data Grid 集群资源的名称。 | Helm Chart 发行版本名称。 |
|
| 数据网格服务器配置. | 数据网格提供默认服务器配置。有关配置服务器实例的更多信息,请参阅 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.interfaces和deploy.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 服务器配置
数据网格缓存配置
缓存模板
集群传输
第 3 章 配置身份验证和授权 复制链接链接已复制到粘贴板!
通过添加凭证并使用不同权限分配角色,来控制对 Data Grid 集群的访问。
3.1. 默认凭证 复制链接链接已复制到粘贴板!
Data Grid 在 < helm_release_name>-generated-secret secret 中添加默认凭证。
| 用户名 | Description |
|---|---|
|
|
具有 |
|
|
具有 |
3.1.1. 检索凭证 复制链接链接已复制到粘贴板!
从身份验证 secret 获取 Data Grid 凭证。
先决条件
- 安装 Data Grid Helm Chart。
-
有
oc客户端。
流程
使用以下命令从 <
;helm_release_name>-generated-secret 或自定义凭证检索默认凭证:oc get secret <helm_release_name>-generated-secret \ -o jsonpath="{.data.identities-batch}" | base64 --decode$ oc get secret <helm_release_name>-generated-secret \ -o jsonpath="{.data.identities-batch}" | base64 --decodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 添加自定义用户凭证 复制链接链接已复制到粘贴板!
创建 Data Grid 用户凭据并分配授予集群访问权限安全授权的角色。
流程
通过在
deploy.security.batch字段中指定user create命令来创建凭据。具有隐式授权的用户
deploy: security: batch: 'user create admin -p changeme'deploy: security: batch: 'user create admin -p changeme'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 具有特定角色的用户
deploy: security: batch: 'user create personone -p changeme -g deployer'deploy: security: batch: 'user create personone -p changeme -g deployer'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 安装或升级您的 Data Grid Helm 发行版本。
3.2.1. 用户角色和权限 复制链接链接已复制到粘贴板!
Data Grid 使用基于角色的访问控制来授权用户访问集群资源和数据。为提高安全性,您应该在添加凭证时为 Data Grid 用户授予适当的角色。
| 角色 | 权限 | Description |
|---|---|---|
|
| ALL | 具有所有权限的超级用户,包括缓存管理器生命周期的控制。 |
|
| ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR, CREATE |
除了 |
|
| ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR |
除 |
|
| ALL_READ, MONITOR |
除了监控权限外,还具有对数据网格 |
|
| MONITOR | 可以查看数据网格集群的统计信息。 |
3.2.2. 使用身份验证 secret 添加多个凭证 复制链接链接已复制到粘贴板!
使用身份验证 secret 在 Data Grid 集群中添加多个凭证。
先决条件
-
有
oc客户端。
流程
创建一个
Identity-batch文件,其中包含用于添加凭证的命令。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从您的身份识别文件创建身份验证 secret。
oc apply -f identities-batch.yaml
$ oc apply -f identities-batch.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
deploy.security.SecretName字段中指定身份验证 secret。deploy: security: authentication: true secretName: 'connect-secret'deploy: security: authentication: true secretName: 'connect-secret'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 安装或升级您的 Data Grid Helm 发行版本。
3.3. 禁用身份验证 复制链接链接已复制到粘贴板!
允许用户在不提供凭证的情况下访问数据网格集群并操作数据。
如果端点可以从 OpenShift 集群外部访问,则不要禁用身份验证。您应该只在开发环境中禁用身份验证。
流程
-
从"default"安全域中删除
propertiesRealm字段。 - 安装或升级您的 Data Grid Helm 发行版本。
3.4. 禁用安全授权 复制链接链接已复制到粘贴板!
允许数据网格用户执行任何操作,无论其角色如何。
流程
将
null设置为deploy.infinispan.cacheContainer.security字段的值。提示将
--set deploy.infinispan.cacheContainer.security=null参数与helm客户端搭配使用。- 安装或升级您的 Data Grid Helm 发行版本。
第 4 章 配置网络访问 复制链接链接已复制到粘贴板!
配置数据网格部署的网络访问,并找出有关内部网络服务的信息。
4.1. 在网络上公开 Data Grid 集群 复制链接链接已复制到粘贴板!
在网络上提供 Data Grid 集群,以便您可以访问 Data Grid 控制台以及 REST 和 Hot Rod 端点。默认情况下,Data Grid chart 通过路由公开部署,但您可以将其配置为通过负载均衡器或节点端口公开集群。您还可以配置 Data Grid chart,使部署不会在网络中公开,且仅在 OpenShift 集群内部可用。
流程
为
deploy.expose.type字段指定以下内容之一:Expand Option Description Route(路由)通过路由公开数据网格。这是默认值。
LoadBalancer通过负载均衡器服务公开数据网格。
NodePort通过节点端口服务公开数据网格。
""(空值)在网络上禁用公开数据网格。
-
如果通过路由公开 Data Grid,则可以选择使用
deploy.expose.host字段指定主机名。 -
如果您通过节点端口服务公开 Data Grid,则可以选择使用
deploy.expose.nodePort字段指定端口。 - 安装或升级您的 Data Grid Helm 发行版本。
4.2. 检索网络服务详情 复制链接链接已复制到粘贴板!
获取网络服务详情,以便您可以连接到 Data Grid 集群。
先决条件
- 在网络上公开您的数据网格集群。
-
有
oc客户端。
流程
使用以下命令之一检索网络服务详情:
如果您通过路由公开数据网格:
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您通过负载均衡器或节点端口服务公开数据网格:
oc get services
$ oc get servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 网络服务 复制链接链接已复制到粘贴板!
Data Grid chart 为内部访问创建默认网络服务。
| Service | 端口 | 协议 | Description |
|---|---|---|---|
|
|
| TCP | 提供对 Data Grid Hot Rod 和 REST 端点的访问。 |
|
|
| TCP | 提供对数据网格指标的访问权限。 |
|
|
| TCP | 允许 Data Grid pod 相互发现,并组成集群。 |
您可以检索有关内部网络服务的详细信息,如下所示:
oc get services
$ 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
第 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存档提取到主机文件系统。
流程
使用网络服务作为
-c参数的值启动 Data Grid CLI,例如:{native_cli} -c http://cluster-name-myroute.hostname.net/$ {native_cli} -c http://cluster-name-myroute.hostname.net/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 提示时输入您的 Data Grid 凭证。
根据需要执行 CLI 操作。
提示按 Tab 键,或使用
--help参数查看可用选项和帮助文本。-
使用
quit命令退出 CLI。
5.3. 连接在 OpenShift 上运行的 Hot Rod 客户端 复制链接链接已复制到粘贴板!
使用与 Data Grid 集群在同一 OpenShift 集群上运行的 Hot Rod 客户端访问远程缓存。
先决条件
- 检索网络服务详细信息。
流程
在客户端配置中,为您的 Data Grid 集群指定内部网络服务详情。
在以下配置示例中,
$SERVICE_HOSTNAME:$PORT表示可访问您的 Data Grid 集群的主机名和端口。- 指定凭证以便客户端可以通过 Data Grid 进行身份验证。
如果需要,配置客户端智能。
在 OpenShift 上运行的热环客户端可以使用任何客户端智能,因为它们可以访问 Data Grid Pod 的内部 IP 地址。
建议默认智能HASH_DISTRIBUTION_AWARE,因为它允许客户端将请求路由到主要所有者,从而提高性能。
程序配置
热 Rod 客户端属性
5.4. 连接在 OpenShift 外部运行的 Hot Rod 客户端 复制链接链接已复制到粘贴板!
使用您部署数据网格集群的 OpenShift 集群外部运行的 Hot Rod 客户端访问远程缓存。
先决条件
- 在网络上公开您的数据网格集群。
- 检索网络服务详细信息。
流程
在客户端配置中,为您的 Data Grid 集群指定内部网络服务详情。
在以下配置示例中,
$SERVICE_HOSTNAME:$PORT表示可访问您的 Data Grid 集群的主机名和端口。- 指定凭证以便客户端可以通过 Data Grid 进行身份验证。
-
将客户端配置为使用
BASIC智能功能。
程序配置
热 Rod 客户端属性
5.5. 访问 REST API 复制链接链接已复制到粘贴板!
数据网格提供了一个 RESTful 接口,您可以使用 HTTP 客户端与 交互。
先决条件
- 在网络上公开您的数据网格集群。
- 检索网络服务详细信息。
流程
使用
$SERVICE_HOSTNAME:$PORT/rest/v2上的任何 HTTP 客户端访问 REST API。用网络上提供的主机名和端口替换
$SERVICE_HOSTNAME:$PORT。