【问题标题】:Expose Neo4j cluster in Kubernetes在 Kubernetes 中公开 Neo4j 集群
【发布时间】:2017-12-20 11:20:15
【问题描述】:

我正在尝试在 Kubernetes 中部署 Neo4j causal cluster。我在 Github 上关注了this guide,并在 Google Kubernetes Engine 中部署了集群,它按预期工作,即集群复制跟随者中的写入,并在发生故障时赶上(删除 pod)。

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

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

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

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

【问题讨论】:

    标签: neo4j kubernetes google-kubernetes-engine


    【解决方案1】:

    对于 Kubernetes 中的同一个部署,您可以有多个 Services。

    • 有一个ClusterIP 服务,因此节点可以继续与每个 oter 通信。
    • 有一个LoadBalancer 服务,这样你就可以将公共端口暴露给互联网。

    如果您希望进一步限制内部通信,您应该查看 Kubernetes 网络策略(但我怀疑这就是您所需要的)。这方面的一些资源:

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2020-10-14
      • 2019-01-05
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 2020-04-25
      • 2020-09-13
      • 2020-06-15
      相关资源
      最近更新 更多