【发布时间】:2020-06-02 16:53:32
【问题描述】:
首先,我要说的是,我对 Kubernetes 和微服务架构总体来说还很陌生。我还要说,这更像是一个高级架构问题,而不是寻求与技术相关的规范性、操作方法建议。我想我可以弄清楚实现细节,但我不确定有什么机制可以让我到达我想去的地方。
应用概述
在 K8s 集群上运行的简单“电子商务”示例应用程序。 SPA 前端,为 API 提供 .NET Core 服务。
客户端(前端)
Angular SPA 构建并部署到 NGinx 容器中,该容器将 Angular 应用程序作为静态站点提供服务。它在集群上作为LoadBalancer 服务运行。
服务(后端)
在集群中以ClusterIP 运行的两个简单服务。我们称它们为产品和订单。
问题
部署 SPA 时,它会从用户的浏览器而不是容器向服务发出请求。这些服务没有在LoadBalancer 配置中运行,因此它们不会暴露在集群之外。让客户端应用程序与服务对话的最佳实践是什么?具体来说:
- 我真的需要在外部公开每个微服务吗?
- 是否有某种代理技术,我可以在其中公开单个
<cluster>/api端点,路由到适当的后端服务? - Angular Universal(又名服务器端渲染)是否可以在这里发挥作用?
- 我可以查看任何可参考的存储库作为示例吗?
我搜索了 SO 并找到了类似的问题,但没有一个确切地问这个问题。如果有人向我指出一个启发我的现有问题,我会很乐意删除这个问题。
【问题讨论】:
-
仅供参考,应该是“阐明主题”。我怀疑我们能否找到澄清你的问题:)。
-
哈!好点子!谢谢。已编辑。
标签: angular kubernetes architecture microservices