我正在尝试在Kubernetes中部署Neo4j causal cluster。我在Github上关注this guide,并在Google Kubernetes Engine中部署了群集,它按预期工作,即群集在关注者中复制写入,并在发生故障时赶上(删除pod)。
接下来我要做的是将此群集公开以从其外部访问。
我面临的挑战是,为了连接到远程因果群集,我需要使用{{1来获得任何CORE
服务器的静态名称/ IP地址URI,以便驱动程序可以相应地路由请求(读,写等)。
如此处所示,service已显示为bolt+routing
模式,因此只能从群集中进行访问。{p}}我试图将其更改为ClusterIP
和NodePort
模式,在这些情况下,LoadBalancer
Neo4j群集成员无法找到彼此。
如何保持所需端口(Raft,Transactions等)的内部通信并公开CORE
(以及浏览器可能7687
)以进行外部通信?
答案 0 :(得分:2)
对于Kubernetes中的相同部署,您可以拥有多个Service
。
ClusterIP
服务,因此节点可以继续与每个oter进行通信。LoadBalancer
服务,因此您可以将公共端口公开到Internet。如果您希望进一步限制内部通信,,您应该查看Kubernetes网络政策(但我怀疑这是您需要的)。一些资源: