本页介绍了如何为 Cloud Run 服务设置 GPU 的可用区冗余选项。 默认情况下,GPU 启用了可用区冗余,因此数据和流量会在一个区域内的多个可用区之间自动平衡。如果特定可用区发生故障,流量会自动路由到其他可用区。
相反,如果您想以更低的每 GPU 秒成本使用“尽力可靠”可靠性,请为 GPU 关闭区域冗余。
支持的区域
us-central1
(爱荷华)二氧化碳排放量低
asia-southeast1
(新加坡)europe-west1
(比利时)二氧化碳排放量低2
europe-west4
(荷兰)二氧化碳排放量低2
asia-south1
(孟买)- 注意:此地区仅限受邀者使用。如果您对此地区感兴趣,请与您的 Google 客户支持团队联系
价格影响
如需了解 GPU 价格详情,请参阅 Cloud Run 价格,了解可用区冗余的费用。
请求配额
默认情况下,可用区级冗余或可用区级冗余不受配额限制。您需要申请配额。请使用以下按钮中提供的链接申请所需的配额。
需要配额 | 配额链接 |
---|---|
已启用可用区冗余的 GPU | 申请可用区级冗余的 GPU 配额 |
已停用可用区级冗余的 GPU | 申请不支持可用区级冗余的 GPU 配额 |
GPU 配额页面(可用区级冗余和非可用区级冗余) | 申请 GPU 配额 |
准备工作
以下列表介绍了在 Cloud Run 中使用 GPU 时的要求和限制:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
所需的角色
如需获得配置和部署 Cloud Run 服务所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
Cloud Run 服务的 Cloud Run Developer (
roles/run.developer
) 角色 -
服务身份的 Service Account User (
roles/iam.serviceAccountUser
) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 服务与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
为具有 GPU 的 Cloud Run 服务配置可用区冗余
任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 配置 GPU。
控制台
在 Google Cloud 控制台中,前往 Cloud Run:
点击部署容器,然后选择服务以配置新服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本。
如果您要配置新服务,请根据需要填写初始服务设置页面,然后点击容器、网络、安全性以展开服务配置页面。
点击容器标签页。
-
选中“GPU”复选框以显示 GPU 冗余选项。
- 选择无可用区冗余以关闭可用区冗余
- 选择可用区级冗余以启用可用区级冗余。
-
选中“GPU”复选框以显示 GPU 冗余选项。
点击创建或部署。
gcloud
默认情况下,GPU 区域冗余功能处于开启状态。如需为服务停用 GPU 可用区冗余配置,或者如需在之前停用了可用区冗余后重新启用该配置,请使用 gcloud beta run services update 命令:
gcloud beta run services update SERVICE \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --no-cpu-throttling \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --max-instances MAX_INSTANCE --GPU_ZONAL_REDUNDANCY
您需要进行如下替换:
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 将 IMAGE_URL 替换为对容器映像的引用,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。 如果您使用 Artifact Registry,则必须预先创建制品库 REPO_NAME。网址格式为LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。 - CPU 替换为 CPU 数量。您必须至少指定
4
CPU。 - 将 MEMORY 替换为内存量。您必须至少指定
16Gi
(16 GiB)。 - 将 GPU_NUMBER 替换为值
1
(一个)。 如果未指定该项,但存在 GPU_TYPE,则默认值为1
。 - 将 GPU_TYPE 替换为 GPU 类型。如果未指定该项,但存在 GPU_NUMBER,则默认值为
nvidia-l4
(nvidiaL
4 小写 L,而不是数值 14)。 - 将 MAX_INSTANCE 替换为实例数上限。此数量不能超过为您的项目分配的 GPU 配额。
- 将 GPU_ZONAL_REDUNDANCY 与
no-gpu-zonal-redundancy
搭配使用以关闭可用区冗余,或与gpu-zonal-redundancy
搭配使用以开启可用区冗余。
YAML
如果您要创建新的服务,请跳过此步骤。如果您要更新现有服务,请下载其 YAML 配置:
gcloud run services describe SERVICE --format export > service.yaml
更新
run.googleapis.com/gpu-zonal-redundancy-disabled
注释:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/gpu-zonal-redundancy-disabled: GPU_ZONAL_REDUNDANCY
您需要进行如下替换:
- 将 SERVICE 替换为您的 Cloud Run 服务的名称。
- 使用
false
与 GPU_ZONAL_REDUNDANCY 搭配使用以启用 GPU 可用区冗余,或使用true
将其停用。
使用以下命令创建或更新服务:
gcloud run services replace service.yaml