工具
如何结合 Kubernetes 使用 Neo4j 工具
Neo4j Browser
为了使用 Neo4j Browser,您必须遵循外部暴露说明,其中提供了如何使您的集群在互联网上可用的详细步骤。 |
Neo4j browser 可通过上述任何主机名上的 7474 端口访问。然而,由于集群所处的网络环境,Neo4j 集群中的主机使用私有内部 DNS 进行通告,该 DNS 无法从集群外部解析。
此外,为了使用安全通信,建议配置 HTTPS 和 SSL 证书。
Cypher Shell
部署 helm chart 后,您将获得一个可用于连接集群的命令。这将调度一个新的名为 "cypher-shell" 的 Neo4j Pod 运行,并调用该命令进行连接。有关示例,请参阅 NOTES.txt。
一旦您具备基本的 Bolt 客户端和 Cypher shell 能力,请查阅标准 Neo4j 文档以了解许多其他可用选项。
Neo4j-Admin Import
Matt Cockayne 发表了以下博文,介绍了如何使用 Kubernetes 的 initContainers 运行 neo4j-admin import
并从 CSV 预加载镜像中的数据,而不是使用备份集。
更普遍地说,他使用的技术是建议用于所有其他 Neo4j shell 工具的方法。与其构建自定义 Docker 镜像,不如建议您在 initContainer 内部运行一个 shell 脚本,执行在 Neo4j 容器启动之前准备数据卷所需的任何 shell 操作。
插件
Neo4j Docker 容器可以接受一个额外的环境变量 NEO4JLABS_PLUGINS,用于预安装最常用的插件。Helm chart 反过来有一个 plugins 参数,允许您指定此值。
该值必须是有效的插件名称 JSON 数组。有效名称列表可在此处找到,包括 APOC、图数据科学、Neo4j Streams(Kafka 集成)等。
此机制的工作方式是,每个插件发布一个 versions.json 文件,允许 Neo4j Docker 容器在运行时确定要下载哪个版本的插件 JAR 并将其放到相应位置。
这种插件方法要求您的容器能够下载文件,这需要外部互联网访问。如果您处于受限的网络环境中,应指定 plugins: [] 并使用 initContainer 方法手动安装 APOC。 |
APOC
从 Neo4j 4.1 开始,所有 Neo4j 发行版都包含 APOC 过程的子集(APOC Core),位于一个默认未启用的特殊目录中。这在“APOC Core”和“APOC Full”(所有过程和函数)之间创建了分离。
APOC Full 默认包含;要禁用 APOC,请将 plugins 参数设置为空数组 []
。通过在下方显示的默认值中添加其他插件名称,您可以使用多个插件。
plugins: "[\"apoc\"]"
如果您只想使用 APOC Core,请将 plugins
参数设置为空数组以不自动安装 APOC Full,并使用 initContainer 或其他方法将提供的 APOC Core 库移动到 plugins 文件夹中以启用它。
请注意使用正确的语法和转义:YAML 可以解释 JSON,而我们的目标是指定一个 JSON 字符串。 |
在部署场景文件夹中提供了一个示例配置,展示了使用 Neo4j 的图数据科学插件安装独立实例。
其他/自定义插件仍然需要使用 initContainers 在运行时下载和安装插件。