首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相同的GCP负载均衡器在GCS桶和GKE之间路由

使用相同的GCP负载均衡器在GCS桶和GKE之间路由
EN

Stack Overflow用户
提问于 2020-02-28 03:49:06
回答 2查看 1.6K关注 0票数 9

我一直在寻找是否可以在Google云存储桶中托管静态React应用程序,并使用Google Cloud CDN和一个单独的Google云负载均衡器将缓存错误路由到存储桶中,管理证书,并将内部请求从React应用程序路由到GKE托管的API?

是否有可能实现这一体系结构,还是会有另一种推荐的方法?

EN

回答 2

Stack Overflow用户

发布于 2020-03-01 03:04:19

您可以使用(两个或更多)路由匹配器来实现负载均衡器,一个用于api.example.com,后端为GKE,另一个用于带有后端桶的static.example.com。

这个后端桶将启用CDN。如果需要,可以将多条路由指向同一个后端。

具体地说:

  1. 创建一个由独立网络终结点组表示的Kubernetes服务。这将允许您管理GKE之外的负载均衡器。博士:https://cloud.google.com/kubernetes-engine/docs/how-to/standalone-neg
  2. 使用要匹配API端点的路由创建HTTP(S)负载均衡器。在负载均衡器创建流程中创建一个BackendService,并将其指向您在步骤1. docs:https://cloud.google.com/load-balancing/docs/https/https-load-balancer-example中创建的现有区域网络端点组
  3. 在相同的流中创建一个BackendBucket,将其指向要用于存储静态React资产的存储桶。确保勾选“”框&创建将流量发送到该桶的路由。博士:现有
  4. 完成创建LB,这将分配IP地址,并更新DNS为您的域名指向这些IP。
票数 7
EN

Stack Overflow用户

发布于 2020-02-28 12:12:57

这种方法首先要考虑的是,CDN位于负载平衡器的前面。而不是相反的方法。这意味着CDN不需要路由。路由是在之后完成的,缓存请求内容。

除此之外,CDN还开始缓存内容。这意味着,只有在客户端请求所述资源之后,它才需要第一次获取资源。

如果资源尚未缓存在CDN中,那么它将被路由到后端(通过负载均衡器),以便检索它并生成一个“本地副本”。当然,这要求资源也存在于后端,以便CDN缓存它。

您的方法似乎假设CDN将充当一种不同类型的持久层,因此我认为它仍然是可能的,但不是使用Cloud,而是使用云存储桶

因为存储桶有多区域班,所以您可能能够实现一些与您正在尝试的CDN类似的东西。

更新:

考虑到新的前提:使用相同的负载均衡器在GCS桶中托管的静态站点和部署在GKE中的API之间路由请求,CDN在其前面,并支持证书。

尽管HTTP(S)负载平衡器可以管理证书,与Cloud兼容,可以将桶或GCE实例作为后端,并且是GKE中的默认in选项(因此它也与它兼容),但这种方法似乎不可行。

当使用部署此类负载均衡器的默认入口类(GCE)在GKE上公开应用程序时,GKE 云控制器管理器负责该资源,并依赖于部署到GKE的定义。

如果您尝试手动管理负载均衡器以添加一个新的后端,在您的示例中,包含静态应用程序的桶,如果将新版本的Ingress部署到集群中,则更改可能会被逆转。

在相反的情况下,手动创建负载均衡器并将其后端配置为服务桶的内容:不支持将这个负载均衡器附加到GKE集群,它必须在Kubernetes中创建。

因此,简单地说:要么使用负载均衡器和桶,要么使用GKE集群,而不是因为前面提到的设计

当然,如果您部署了两个不同的负载均衡器(ingress表示GKE),并将CDN放在负载均衡器的前面,那么这是完全可能的。我提到这一点是为了与上面的信息进行对比。

(请告诉我这是否有帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60444988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档