为实例配置重启政策

Cloud Run 实例的重启政策决定了实例是否应重启以及何时应重启。

重启政策选项

从以下重启政策中进行选择:

  • on-failure(默认):如果任何容器以非零状态代码退出,或者容器遇到基础设施故障,则实例会重启。对于多容器实例,这意味着任何容器发生故障都会导致整个实例重启。
  • always:当任何容器退出时,实例始终会重启。这包括以代码 0 正常退出。
  • never:实例永远不会重新启动。当任何容器终止时,实例会立即转换为 STOPPEDFAILED 状态。

如果您为实例配置了 alwayson-failure 重启政策,实例会在大约 7 天的生命周期结束后自动重启,因此会无限期运行,除非被其他因素中断。

所需的角色

如需获得配置和部署 Cloud Run 实例所需的权限,请让您的管理员为您授予以下 IAM 角色:

如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色Cloud Run IAM 权限。如果您的 Cloud Run 实例与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限管理访问权限

配置重启政策

使用 Google Cloud CLI 或 YAML 为 Cloud Run 实例配置重启政策:

gcloud

如需在部署新实例时指定重启政策,请执行以下操作:

gcloud beta run instances deploy INSTANCE \
    --image=IMAGE_URL \
    --restart-policy=POLICY

如需更新现有实例的重启政策,请执行以下操作:

gcloud beta run instances update INSTANCE \
    --restart-policy=POLICY

替换以下内容:

  • INSTANCE:实例的名称。
  • IMAGE_URL:对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
  • POLICY:要应用的重启政策。您可以从 on-failurealwaysnever 中进行选择。

YAML

  1. 如果您要创建新实例,请跳过此步骤。如果您要更新现有实例,请下载其 YAML 配置

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 以下示例包含 YAML 配置:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - name: CONTAINER_NAME
        image: IMAGE_URL
      restartPolicy: POLICY

    替换以下内容:

    • INSTANCE:Cloud Run 实例的名称。
    • CONTAINER_NAME:容器的名称。
    • IMAGE_URL:对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
    • POLICY:要应用的重启政策。您可以从 on-failurealwaysnever 中进行选择。
  3. 使用以下命令创建或更新实例:

    gcloud beta run instances replace instance.yaml