云 运行 内存限制

Cloud Run Memory Restriction

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

由于 Cloud 运行 使用 knative,我想知道是否可以在 GKE 上将具有更多 allocated/allowed 内存限制的部署描述符调整为 运行。

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

How do I get a Cloud Run container that uses more than 2 GB run on custom GKE cluster?

您可以分配给云中容器的最大内存 运行 托管是 2 GB。

[更新]

对于 Kubernetes 上的 Cloud 运行,您可以请求更多内存:

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

Since Cloud Run uses knative, I wonder if it is possible to tweak deployment describtor with more allocated/allowed memory limit to run it on GKE.

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

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

正如您所说,当您在 GKE 上使用 Cloud 运行 时,您使用的是 Knative 服务堆栈,它允许您配置自定义 CPU 和内存 requests/limits 就像库伯内斯:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

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

resources:
  limits:
    memory: "4GiB"

到 Knative Service 规范中的 container: 字段。

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