Neo4j群集:将Neo4j群集暴露给外部世界

时间:2019-09-28 08:24:36

标签: neo4j google-cloud-platform google-kubernetes-engine service-node-port-range

我已经从Google云市场安装了neo4j企业版,可以从Kubernetes网络中访问它,但是我想从不在同一网络中的外部应用程序访问它。 在this guide from Neo4j之后,我可以使用端口转发连接浏览器;

MY_CLUSTER_LEADER_POD=mygraph-neo4j-core-0
kubectl port-forward $MY_CLUSTER_LEADER_POD 7687:7687 7474:7474

在用户指南中,他们建议我不要在服务器端使用负载平衡器。我应该单独暴露集群中的每个Pod,并从应用程序中使用bolt+routing来处理请求路由。本指南的Limitations部分对此进行了说明。

应该使用Nodeports公开它,但我无法正确执行。我已经尝试过这样做;

kubectl expose pod neo-cluster-neo4j-core-0 --port=7687 --name=neo-leader-pod

但是我无法使用此公开IP连接。我对云技术不太满意,因此无法弄清楚自己在做错什么。

我浏览了这篇文章Neo4j Considerations in Orchestration Environments,告诉了我该怎么做,而不是该怎么做。它假定您具有gcloud / kubernaties的先验知识。

任何人都可以引导我朝正确的方向发展吗?谢谢

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,您可以为neo4j企业创建一个GKE集群。

它在群集网络内部完美运行,但不能在外部运行。

检查是否已打开这些端口的防火墙。

要创建规则或查看现有规则,请执行以下操作:

  1. 转到cloud.google.com

  2. 转到我的控制台

  3. 选择您的项目

  4. 选择网络>​​ VPC网络

  5. 选择“防火墙规则”

  6. 如果不存在,请选择“创建防火墙规则”以创建规则。

  7. 要将规则应用于选择VM实例,请选择“目标”>“指定的目标标记”,然后在“目标标记”中输入标记的名称。此标记将用于将新的防火墙规则应用于您想要的任何实例。然后,确保实例已应用了网络标签。

  8. 例如,要允许传入TCP连接到端口7687,请在“协议和端口”中输入tcp:7687

  9. 点击创建

查看GKE文档以获得更好的线索:

https://cloud.google.com/solutions/prep-kubernetes-engine-for-prod

https://cloud.google.com/kubernetes-engine/docs/how-to/network-policy

https://cloud.google.com/kubernetes-engine/docs/how-to/exposing-apps

:)