【问题标题】:Is it possible to deploy a cluster with one service running locally?是否可以部署一个在本地运行一项服务的集群?
【发布时间】:2021-10-29 20:06:35
【问题描述】:

假设您有 3 个或更多服务不断相互通信,如果它们被远程部署到同一个集群,一切都很好,因为它们可以看到彼此。

但是,我想知道如何在本地部署其中一个,例如使用 minikube,以使它们仍然能够相互通信。

我知道我可以将其他两个端口转发,以便我在本地部署的那个可以向其他人发送呼叫,但我不确定如何使它工作,其他两个也能够发送呼叫到本地的。

【问题讨论】:

  • 除非您有直接 IP,否则远程服务将无法发现您的本地服务。另一种方法是使用外部服务器在本地和远程服务之间建立 RTC 或 Web 套接字连接。

标签: kubernetes minikube


【解决方案1】:

TL;DR 是的,可以,但不推荐,这很困难并且存在安全风险。

Charlie在评论中写的很好,绝对正确:

除非您有直接 IP,否则远程服务将无法发现您的本地服务。另一种方法是使用外部服务器在本地和远程服务之间建立 RTC 或 Web 套接字连接。

如您所见,这是可能的,但也不推荐。通常,容器化和 Kubernetes 的使用都倾向于隔离环境。如果您希望您的服务在不同机器上的完全不同集群中相互通信,则需要通过公共互联网配置适当的网络连接。它还可能带来安全风险。

如果您想在本地设置环境,最好将这 3 个服务作为一个独立的整体运行。还要考虑到 Minikube 主要是为学习和测试某些解决方案而设计的,并不完全适合生产解决方案。

【讨论】:

  • 很抱歉,我应该指定这一点。这里的目的是为了进行测试,真实的场景将有许多服务,这使得在本地全部启动是不切实际的。但是仍然需要测试特定的更改、调试它等等,使用本地环境用于更改的服务,使用远程环境用于与生产保持相同的服务。
  • 因此,按照您描述的方式创建它会更加困难。请看这个:stackoverflow.com/questions/43212836/… 最适合您的解决方案是创建多个环境,例如开发、产品和舞台。然后您可以继续测试新的更改。
猜你喜欢
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 2020-07-22
  • 2019-10-24
  • 2012-09-09
  • 1970-01-01
相关资源
最近更新 更多