【发布时间】:2019-09-06 04:43:03
【问题描述】:
我正在 Kubernetes 上试验服务发现方案。我有 20 多个 GRPC 服务,它们可以分组并部署为 Kubernetes 上的应用程序。每个应用程序通过一个通用的 GRPC 服务器为其中的几个服务提供服务。有一个服务可以发布这个 GRPC 端口,而且我在这些服务上都有标签,可以识别哪些 GRPC 服务器正在那里运行。
例如,我有 APP1 应用程序为 GRPC 服务 a、b、c 提供服务。 APP1前面有一个服务连接到8000端口,标签为a,b,c。因此,当集群中的一个组件需要连接到服务时,比如“b”,它会查找具有标签“b”的服务,并连接到其中一个的端口 8000。这样,我可以以不同的方式对 GRPC 服务进行分组,部署它们,它们都可以找到彼此。
我开始考虑另一种方法。我不想为每个应用程序提供一个带有标签的服务,而是希望为同一个 app:port 提供多个服务(每个 GRPC 服务一个),但名称不同。所以在这个新方案中,APP1 将拥有三个服务,a、b 和 c,它们都连接到同一个 app:port。客户端只需查找名称“b”即可找到 GRPC 服务器“b”。
问题是:您是否发现将多个具有不同名称的服务连接到同一应用程序的同一端口并暴露同一端口有任何潜在问题?即地址a:8000、b:8000、c:8000都指向APP1:8000。
【问题讨论】:
标签: kubernetes kubernetes-service