暴露Kubernetes中的Neo4j簇

暴露Kubernetes中的Neo4j簇,neo4j,kubernetes,google-kubernetes-engine,Neo4j,Kubernetes,Google Kubernetes Engine,我正试图在Kubernetes部署Neo4j。我遵循Github,在Google Kubernetes引擎中部署了集群,它按照预期工作,也就是说,集群复制追随者中的写操作,并在出现故障(删除pod)时进行跟踪 我接下来要做的是将这个集群公开给从它外部访问的用户 我面临的挑战是,为了连接到远程因果集群,我需要使用bolt+routingURI拥有任何CORE服务器的静态名称/IP地址,以便驱动程序可以相应地路由请求(读、写等) 如图所示,显示为ClusterIP模式,因此只能从集群内访问。我尝试将

我正试图在Kubernetes部署Neo4j。我遵循Github,在Google Kubernetes引擎中部署了集群,它按照预期工作,也就是说,集群复制追随者中的写操作,并在出现故障(删除pod)时进行跟踪

我接下来要做的是将这个集群公开给从它外部访问的用户

我面临的挑战是,为了连接到远程因果集群,我需要使用
bolt+routing
URI拥有任何
CORE
服务器的静态名称/IP地址,以便驱动程序可以相应地路由请求(读、写等)

如图所示,显示为
ClusterIP
模式,因此只能从集群内访问。我尝试将其更改为
NodePort
LoadBalancer
模式,在这些情况下,
CORE
Neo4j集群成员无法找到彼此


如何保持所需端口(Raft、事务等)的内部通信,并公开
7687
(以及浏览器可能的
7474
)进行外部通信?

对于Kubernetes中的同一部署,您可以使用多个
服务

  • 拥有
    ClusterIP
    服务,这样节点可以继续与每个oter通信
  • 拥有
    LoadBalancer
    服务,以便将公共端口公开给Internet
如果你想进一步限制内部沟通,你应该看看Kubernetes的网络政策(但我怀疑这是你需要的)。关于这方面的一些资源: