我已经从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的先验知识。
任何人都可以引导我朝正确的方向发展吗?谢谢
答案 0 :(得分:0)
如果我没记错的话,您可以为neo4j企业创建一个GKE集群。
它在群集网络内部完美运行,但不能在外部运行。
检查是否已打开这些端口的防火墙。
要创建规则或查看现有规则,请执行以下操作:
转到cloud.google.com
转到我的控制台
选择您的项目
选择网络> VPC网络
选择“防火墙规则”
如果不存在,请选择“创建防火墙规则”以创建规则。
要将规则应用于选择VM实例,请选择“目标”>“指定的目标标记”,然后在“目标标记”中输入标记的名称。此标记将用于将新的防火墙规则应用于您想要的任何实例。然后,确保实例已应用了网络标签。
例如,要允许传入TCP连接到端口7687,请在“协议和端口”中输入tcp:7687
点击创建
查看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
:)