如何获得在自定义 GKE 集群上使用超过 2 GB 运行的云运行容器?
由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制来调整部署描述符以在 GKE 上运行它。
apiVersion: serving.knative.dev/v1alpha1
kind: Revision
metadata:
...
如何获得使用超过 2 GB 运行的云运行容器 自定义 GKE 集群?
可以在云运行托管中分配给容器的最大内存为 2 GB。
[更新2]
Cloud Run 现在支持 32 GB,但更大的内存功能处于预览状态。本文档提供有关内存限制的详细信息。
设置和更新内存限制
[更新]
- 云运行托管现在支持 8 GB。发行说明。
对于 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服务堆栈,它允许你配置自定义CPU和内存请求/限制,就像Kubernetes一样:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
例如,要获得 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
。