1

我需要设计一个包含多个 spa 页面的网站解决方案。我认为作为高级设计的内容如下:-

每个 spa 页面将有一台机器,它将仅呈现 UI、执行 SSR 并从浏览器获取请求。例如,www.abc.com/foo 将被路由到这台机器。我正在考虑将应用程序 UI 代码放在 kubernetes pod 中并将其托管在机器/节点上。同样使用 KOPS,我将管理节点和 Pod 的自动缩放。

现在,pod 中的这个应用程序将调用其他 pod 以在网页上显示数据。例如,将从 pod1 调用 www.abc.com/API/foo。我正在考虑制作另一个 pod,它将与网页 pod 节点位于同一节点上。

所以现在我有 2 个 Pod 位于一个节点上,它们将根据流量自动缩放。同样,对于我网站上的每个页面,我都会有一个节点,每个节点有 2 个 pod。

我现在的问题如下: -

  1. 以上是否有任何最佳实践或其他设计解决方案?
  2. 我将如何实现基于路径的路由,例如 www.abc.com/foo 应该调用我的网页 pod?
  3. 如何在不使用负载均衡器的情况下将 pod 暴露给外部世界,即互联网?
  4. 我应该为每个 pod 设置不同的存储库吗?
4

1 回答 1

2

以上是否有任何最佳实践或其他设计解决方案?

您可以使用PodAffinity共同定位您的 pod。

我将如何实现基于路径的路由,例如 www.abc.com/foo 应该调用我的网页 pod?

您可以使用 Kubernetes Ingress。由于这是第 7 层设施,您将能够执行多个主机路径,请记住,这通常使用 LoadBalancer 类型的服务暴露给外部。

如何在不使用负载均衡器的情况下将 pod 暴露给外部世界,即互联网?

您可以使用NodePort一种Service. 请注意,您通常使用 Ingress 或 NodePort 服务,这种方法的缺点是您将无法执行路径,并且必须在您的应用程序中进行处理。

我应该为每个 pod 设置不同的存储库吗?

git回购?当然,您必须为每个应用程序提供不同的容器映像。

于 2018-10-19T07:08:25.547 回答