首页 > 解决方案 > 降低 Cloud Run on GKE 成本

问题描述

如果我必须在 Google Cloud Run 上回答以下问题,那就太好了

  1. 如果我创建了一个资源超过 1 个 vCPU 的集群,这些额外的 vCPU 是否会在我的 Cloud Run 服务中使用,或者无论我的集群配置如何,它总是被限制为 1 个 vCPU。在此处的文档中 - 这行让我感到困惑 Cloud Run 为每个容器实例分配 1 个 vCPU,并且无法更改。我知道这适用于托管 Cloud Run,但它是否也适用于 Run on GKE?
  2. 如果为集群指定的资源实际得到利用(例如,我创建了一个包含 2 个节点的 n1-standard-4 15gb 内存节点池),那么为什么在 GKE 上创建/部署到 Cloud Run 时要求我再次选择内存。它的意义是什么? 分配的内存 dropdownon
  3. 如果 Cloud Run 根据流量从 0 自动扩缩到 N,为什么我不能将集群中的节点数设置为 0(我尝试并开始看到有关未调度 pod 的错误消息)?
  4. 我按照自定义映射的文档进行了设置。我是否可以将导致容器实例处理它的请求限制为受域名或它们来自的 ip 的限制(即使它只是通过指定Host像运行文档中的标头来人为设置。 curl -v -H "Host: hello.default.example.com" YOUR-IP

这样,如果我收到HTTP来自我验证域以外的任何地方的请求,我就不会产生费用?

任何帮助将不胜感激。谢谢你。

标签: google-cloud-platformgoogle-kubernetes-enginegoogle-cloud-run

解决方案


1:云运行托管平台始终允许每个修订版 1 个 vcpu。在 gke 上,默认情况下也是如此。但是,仅对于 gke,您可以使用 --cpu 参数覆盖 https://cloud.google.com/sdk/gcloud/reference/beta/run/deploy#--cpu

2:你能准确的问什么,什么时候执行什么操作吗?

3:cloud run 建立在 kubernetes 之上,感谢 knative。顺便说一句,cloud run 负责根据流量来扩大和缩小 pod。Kubernetes 负责根据 CPU 和内存使用情况扩展 pod 和节点。机制不一样。此外,节点规模“慢”,无法适应尖峰流量。最后,必须在你的集群上运行一些东西来监听传入的请求并正确地服务/扩展你的 pod。这个东西必须在没有 0 节点的集群上运行。

4:云运行不允许配置此项。我认为knative也不能。但是您可以在前面部署一个 ESP,以将请求路由到特定的云运行服务。顺便说一句,您之前拆分流量并将其分配给不同的服务,因此您可以独立扩展。每个服务可以有一个 Max scale 参数,不同的并发参数。ESP 可以实现速率限制。


推荐阅读