gpt4 book ai didi

neo4j - Kubernetes集群中的内部和外部集群通信

转载 作者:行者123 更新时间:2023-12-02 12:21:46 24 4
gpt4 key购买 nike

我在Google Kubernetes Engine(GKE)上构建了一个Kubernetes集群。从根本上讲,它是一个Service,带有关联的ReplicaSet和许多 pods 。

这些 pod 需要互相交谈以保持共识。为此,ClusterIP似乎很合适,它允许Pod进行集群内通信。

但是,现在我想向全世界公开此服务。我的想法是从ClusterIP切换到NodePort,并将其与Ingress耦合,后者似乎是best practice

我的问题是,当我将Service切换为NodePort时,我失去了群集的内部通信,即Pod无法彼此通信。据我所知,NodePort is a superset of ClusterIP ,因此它应该保持内部通信。

我究竟做错了什么?

使用其他信息进行编辑:

我指的是this example,它是Neo4j图形数据库的示例。

该示例部署了StatefulSet,其中pod需要进行通信,以保持集群之间的共识。

使用提供的设置, Pane 可以相互交谈。如果我将Service更改为NodePort,并修复所使用的nodePorts(而不是像通常那样随机选择它们),则pod无法再进行通信。

这是预期的行为,还是我缺少了什么?

最佳答案

的确NodePortClusterIP的超集,但是要清楚一点,您不需要将服务设为NodePort类型即可将其由IngressController公开。 IC可以直接访问端点(pod),因此除了ClusterIP之外,无需使用其他任何东西。

另一件事是,ClusterIP服务对Pod到Pod的连接没有影响,并且使用服务允许共识性聊天(除非每个Pod有一个svc)似乎也很奇怪。对于这种操作,您可能需要仔细看看StatefulSet概念

关于neo4j - Kubernetes集群中的内部和外部集群通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47938257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com