我对以下架构有疑问,在Kubernetes文档中找不到明确的答案,也许是您可以帮助我。
我有一个名为“ OrchestrationService”的服务,该服务依赖于其他3个服务“ ServiceA”,“ ServiceB”,“ ServiceC”才能完成其工作。
所有这些服务都有其Docker映像并已部署到Kubernetes。
现在,“ OrchestrationService”将是唯一要与外界联系的人,因此肯定会有一个外部端点,我的问题是“ ServiceA”,“ ServiceB”,“ ServiceC”是否需要一个或Kubernetes是否可以通过KubeProxy / LoadBalancer将这些服务提供给“ OrchestrationService”使用?
寻求答案
答案 0 :(得分:1)
否,您只能将OrchestrationService公开给公众,而其他服务A / B / C必须是集群服务。您为A / B / C创建selector
服务,以便OrchestrationService可以连接到A / B / C服务。可以将OrchestrationService定义为具有固定端口的NodePort
,也可以使用入口将流量路由到OrchestrationService。
答案 1 :(得分:0)
不,您不需要ServiceA
,ServiceB
和ServiceC
的外部端点。
如果这些Pod成功运行,具体取决于您的标签,则可以在OrchestrationService
中访问它,您可以通过说出它们来引用
http://servicea/context_path
servicea
是ServiceA
的已定义服务中的标签
答案 2 :(得分:0)
不是像负载均衡器这样的外部服务,而是您的服务A / B / C需要将自身发布为群集内的服务,以便OrchestrationService等其他服务可以使用它们。