第 20 章 将自定义代码部署到 Data Grid
将自定义代码(如脚本和事件监听程序)添加到您的 Data Grid 集群中。
在将自定义代码部署到 Data Grid 集群之前,您需要将其设置为 Data Grid 集群。要做到这一点,您可以从持久性卷(PV)复制工件,从 HTTP 或 FTP 服务器下载工件,或使用这两种方法。
20.1. 将代码工件复制到 Data Grid 集群 复制链接链接已复制到粘贴板!
将工件添加到持久性卷(PV),然后将其复制到 Data Grid pod。
此流程解释了如何使用挂载持久性卷声明(PVC)的临时 pod:
- 允许您将代码工件添加到 PV (可能写操作)。
- 允许 Data Grid pod 从 PV 加载代码工件(特别是读取操作)。
要执行这些读写操作,您需要特定的 PV 访问模式。但是,对不同 PVC 访问模式的支持取决于平台。
本文档的范围超出了本文档,以提供使用不同平台创建 PVC 的说明。为了简单起见,以下步骤显示了一个具有 ReadWriteMany
访问模式的 PVC。
在某些情况下,只有 ReadOnlyMany
或 ReadWriteOnce
访问模式可用。您可以通过回收并使用相同的 spec.volumeName
的 PVC 来结合使用这些访问模式。
使用 ReadWriteOnce
访问模式会导致集群中的所有 Data Grid pod 调度到同一 OpenShift 节点上。
流程
切换到 Data Grid 集群的命名空间。
oc project rhdg-namespace
oc project rhdg-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为自定义代码工件创建一个 PVC,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用您的 PVC。
oc apply -f datagrid-libs.yaml
oc apply -f datagrid-libs.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建挂载 PVC 的 pod,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 pod 添加到 Data Grid 命名空间并等待它就绪。
oc apply -f datagrid-libs-pod.yaml oc wait --for=condition=ready --timeout=2m pod/datagrid-libs-pod
oc apply -f datagrid-libs-pod.yaml oc wait --for=condition=ready --timeout=2m pod/datagrid-libs-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将代码工件复制到 pod 中,以便它们加载到 PVC 中。
例如,要从本地
libs
目录中复制代码工件,请执行以下操作:oc cp --no-preserve=true libs datagrid-libs-pod:/tmp/
oc cp --no-preserve=true libs datagrid-libs-pod:/tmp/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 pod。
oc delete pod datagrid-libs-pod
oc delete pod datagrid-libs-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
Infinispan
CR 中指定带有spec.dependencies.volumeClaimName
的持久性卷,然后应用更改。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果更新持久性卷上的自定义代码,您必须重启 Data Grid 集群,以便它可以加载更改。