如何在自定义 GKE 集群上运行使用超过 2 GB 的 Cloud Run 容器?
由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制调整部署描述符以在 GKE 上运行它。
apiVersion: serving.knative.dev/v1alpha1
kind: Revision
metadata:
...
如何在自定义 GKE 集群上运行使用超过 2 GB 的 Cloud Run 容器?
由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制调整部署描述符以在 GKE 上运行它。
apiVersion: serving.knative.dev/v1alpha1
kind: Revision
metadata:
...
如何在自定义 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。
正如您所说,当您在 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
.