假设您有3个或更多的服务,它们相互之间经常通信,如果它们远程部署到同一个集群中,那么它们都很好,因为它们可以看到彼此。
然而,我想知道如何在本地部署其中一个,例如使用minikube,以一种它们仍然能够相互通信的方式。
我知道我可以将其他两个端口转发,以便我在本地部署的一个可以向其他两个发送呼叫,但我不确定如何使其工作,使其他两个也能够向本地发送呼叫。
TL;DR是的,这是可能的,但不建议这样做,这很困难,并且存在安全风险。
Charlie在评论中写得很好,绝对正确:
你的本地服务不会被远程服务发现,除非你有一个直接的IP。另一种方法是使用外部服务器在本地和远程服务之间建立RTC或Web套接字连接。
如您所见,这是可能的,但也不推荐。通常,容器化和kubernetes的使用都倾向于隔离环境。如果您希望您的服务能够在不同机器上的完全不同的集群中相互通信,则需要通过公共internet配置适当的网络连接。这也可能带来安全风险。
如果您想在本地设置环境,那么将这3个服务作为一个独立的整体运行将是一个更好的主意。还要考虑到Minikube主要是为学习和测试某些解决方案而设计的,并不完全适合生产解决方案。