减少云 运行 的 GKE 成本

Reduce Cloud Run on GKE costs

如果我可以在 Google Cloud 运行

上回答以下问题,那就太好了
  1. 如果我创建一个资源超过 1vCPU 的集群,这些额外的 vCPU 是否会在我的云 运行 服务中使用,或者它是否始终以 1vCPU 为上限,而不管我的集群配置如何。在此处的文档中 - 这一行让我感到困惑 Cloud 运行 为每个容器实例分配 1 个 vCPU,并且无法更改。我知道这适用于托管云 运行,但它是否也适用于 GKE 上的 运行?
  2. 如果为集群指定的资源实际得到利用(比如,我创建了一个包含 2 个节点的 n1-standard-4 15gb 内存的节点池)那么为什么当 creating/deploying 到 GKE 上的云 运行。它的意义何在? The memory allocated dropdowon
  3. 如果 Cloud 运行 根据流量从 0 自动缩放到 N,为什么我不能将集群中的节点数设置为 0(我尝试并开始看到有关未安排的错误消息 pods)?
  4. 我按照 custom mapping 上的文档进行了设置。我可以限制导致容器实例处理它的请求受域名或它们来自哪里的 ip 限制吗(即使它只是通过指定 Host header 来人为设置,就像在运行 文档。 curl -v -H "Host: hello.default.example.com" YOUR-IP

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

非常感谢任何帮助。谢谢。

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

2:请问具体是什么操作,什么时候操作?

3:由于 knative,云 运行 构建在 kubernetes 之上。顺便说一句,cloud 运行 负责根据流量扩展和缩减 pod。 Kubernetes 负责根据 CPU 和内存使用情况扩展 pod 和节点。机制不尽相同。此外,节点规模为 "slow",无法应对突发流量。最后,你的集群必须 运行 一些东西来监听传入的请求,并且 serving/scaling 正确地你的 pod。这个东西必须 运行 在没有 0 节点的集群上。

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