第 12 章 为 OpenShift 自定义数据网格
将 Data Grid 镜像与自定义配置一起使用,可通过 Source-to-Image(S2I)流程或通过 ConfigMap
API 使用。
红帽鼓励您使用 Data Grid for OpenShift 镜像和 datagrid-service
和 cache-service
模板来创建 Data Grid 集群。虽然可以使用自定义配置创建 Data Grid pod,但 datagrid-service
和 cache-service
是高性能设计的,它适用于不需要配置的各种用例。
请参阅为 OpenShift 服务设置数据网格, 了解如何快速创建数据网格集群。
- Source-to-Image(S2I)
使用 S2I 流程和二进制构建来创建自定义 Data Grid 镜像。
在
openshift-clustered.xml
中添加缓存定义和端点配置,然后使用 S2I 功能构建使用该配置文件的自定义 Data Grid 镜像。然后,您可以根据需要创建带有镜像的 Data Grid pod。要修改配置,您必须构建新镜像。但是,当您重建自定义镜像时,Data Grid pod 会自动使用新配置更改重新部署。
- ConfigMap API
使用 Red Hat OpenShift
ConfigMap
API 动态配置 Data Grid pod。在
standalone.xml
中定义自定义配置,该配置映射到命名空间中的ConfigMap
对象,作为 Data Grid pod。您可以修改 Data Grid 配置,然后重新部署 pod 以加载配置更改。但是,当修改standalone.xml
时,Data Grid pod 不会自动重新部署。您必须手动重新部署 pod 才能加载配置更改。在创建 Data Grid pod 前,您应该在
standalone.xml
中显式定义所有缓存和端点配置。除非在部署前存在占位符,否则缓存和端点配置的环境变量不会生效。例如,以下是
JGROUPS_PING_PROTOCOL
的占位符:<!-- ##JGROUPS_PING_PROTOCOL## -->
请参阅 cluster-openshift.xml 查看可用的占位符。
-
要加密客户端到服务器流量,您必须在
standalone.xml
中配置服务器身份。 -
对于通过
ConfigMap
API 自定义的 OpenShift pod,DATAGRID_SPLIT
环境变量不会与 Data Grid 生效。这些 pod 无法将共享持久性卷用于DATAGRID_SPLIT
。
12.1. 克隆数据网格示例
克隆用于 OpenShift 镜像存储库的 Data Grid。
$ git clone git@github.com:jboss-container-images/jboss-datagrid-7-openshift-image.git .
查看
docs/examples
目录的内容,例如:$ cd jboss-datagrid-7-openshift-image/docs/examples/s2i/configuration $ tree . ├── s2i │ └── configuration │ └── clustered-openshift.xml └── user-configuration ├── standalone.xml └── user-config-template.yaml
- S2I
将
clustered-openshift.xml
注入${JBOSS_HOME}/standalone/configuration/
用于 OpenShift 镜像的 Data Grid。提示将自定义 logging.properties 和 application-role.properties 添加到
配置
目录中,以便在构建自定义镜像时包含它们。- ConfigMap
-
将
standalone.xml
映射到 OpenShift 镜像的 Data Grid 内部的/opt/datagrid/standalone/configuration/user
目录中。