3

如何在自定义 GKE 集群上运行使用超过 2 GB 的 Cloud Run 容器?

由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制调整部署描述符以在 GKE 上运行它。

apiVersion: serving.knative.dev/v1alpha1
kind: Revision
metadata:
 ...
4

2 回答 2

6

如何在自定义 GKE 集群上运行使用超过 2 GB 的 Cloud Run 容器?

您可以在 Cloud Run Managed 中分配给容器的最大内存为 2 GB。

[更新]

对于 Cloud Run on Kubernetes,您可以请求更多内存:

gcloud beta run deploy --image gcr.io/cloudrun/hello --memory=4G --cluster ha-cluster-1

由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制调整部署描述符以在 GKE 上运行它。

Cloud Run Managed 不在 Knative 中运行,它在 gVisor 中运行。我写了一篇文章,描述了 Cloud Run 基础架构以及 Cloud Run Managed 和 Cloud Run on Kubernetes在此处公开的 Knative API 。但是,即使直接访问 Cloud Run Knative API,您也无法绕过强加的服务限制。

Cloud Run 的目的是通过抽象出底层基础架构的实现细节来简化部署。在某些情况下,您应该直接部署到 Kubernetes。

于 2019-05-29T03:10:22.173 回答
1

正如您所说,当您在 GKE 上使用 Cloud Run 时,您使用的是 Knative 服务堆栈,它允许您像 Kubernetes 一样配置自定义 CPU 和内存请求/限制:https ://kubernetes.io/docs/concepts/configuration /管理计算资源容器/

例如,要获得 4 GiB 内存,您必须添加如下字段:

resources:
  limits:
    memory: "4GiB"

到您container:在 KnativeService规范中的领域。

在 Knative 0.6(服务于 v1beta1)中,该字段的路径将是Service.spec.template.spec.containers[*].resources字段,在早期版本中(服务于 v1alpha1)类似于Service.spec.runLatest.revisionTemplate.spec.container.resources.

于 2019-05-29T16:38:02.673 回答