为工作器池配置容器

本页面介绍了如何为 Cloud Run 工作器池配置入口点命令和参数。

当 Cloud Run 启动容器时,它会运行映像的默认入口点命令和默认命令参数。如果要替换映像的默认入口点和命令参数,您可以使用容器配置中的 commandargs 字段。command 字段指定容器运行的实际命令。args 字段指定传递给该命令的参数。

请注意,每个工作器池的每个容器最多可以有 1,000 个参数。

所需的角色

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

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

配置入口点和参数

任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。

指定的容器命令和参数会替换默认映像 ENTRYPOINTCMD

您可以使用Google Cloud 控制台、Google Cloud CLI 或 Terraform 为 Cloud Run 工作器池设置入口点命令和参数:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Run:

    转到 Cloud Run

  2. 从菜单中选择工作器池,然后点击部署容器以配置新的工作器池。 如果您要配置现有工作器池,请点击该工作器池,然后点击修改和部署新的修订版本

  3. 如果您要配置新的工作器池,请填写初始工作器池页面,然后点击容器、卷、网络、安全性以展开工作器池配置页面。

  4. 点击容器标签页。

    图片

    • 如果您不想使用容器映像中定义的入口点命令,请指定您希望容器运行的命令。(可选)指定入口点命令的参数。
  5. 点击创建部署

gcloud

如需更新现有服务的启动命令和参数,请执行以下操作:

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

替换以下内容:

  • WORKER_POOL:工作器池的名称。
  • COMMAND:启动容器的命令(如果您未使用默认命令)。
  • ARG1:要发送到容器命令的参数。如有多个参数,请使用逗号分隔列表。

如需在新工作器池或现有工作器池的部署期间指定入口点和参数,请执行以下操作:

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

IMAGE_URL 替换为对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest

如果您想恢复入口点命令和参数的容器默认值,请提供空字符串,如下所示:

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}

替换以下内容:

  • WORKER_POOL:工作器池的名称。
  • REGION: Google Cloud 区域,例如 europe-west1
  • IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • COMMAND:启动容器的命令(如果您未使用默认命令)。
  • ARG1ARG2:您要发送到容器命令的参数。

为 sidecar 部署配置容器启动顺序

如需在边车部署中指定容器启动顺序,请使用容器依赖项功能。指定任何具有依赖项的容器,并列出它们所依赖的容器,以便这些容器首先启动。没有任何依赖项的容器始终首先并发启动。

如需成功使用此功能,您必须使用启动健康检查探测。启动探测使 Cloud Run 能够检查依赖容器的健康状况,确保其在启动下一个容器之前成功通过。如果不使用健康检查,即使容器依赖的容器无法启动,它们也会按指定的顺序启动。

请注意,工作器池没有默认的启动健康检查探测。

使用 Google Cloud 控制台或 Google Cloud CLI 指定启动顺序:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Run 页面:

    转到 Cloud Run

    • 从菜单中选择工作器池
    • 对于现有工作器池,请点击列表中的工作器池,然后选择修改和部署新的修订版本以显示修订版本部署表单。
    • 对于新的工作器池,请点击部署容器以显示创建工作器池表单。
  2. 对于新工作器池,请指定工作器池名称、入站流量容器网址、CPU 分配、入站流量控制和身份验证。在容器、卷、网络、安全性标签页中,执行以下操作:

    1. 配置 Ingress 容器。
    2. 如需添加要部署的每个其他容器,请点击添加容器
    3. 对于除 Ingress 容器之外的所有容器,请配置启动健康检查
    4. 如果某个容器需要在某些其他容器之后启动,请在容器启动顺序菜单中选择这些容器。
  3. 对于现有工作器池,请按照以下步骤操作:

    1. 对于除 Ingress 容器之外的所有容器,请配置启动健康检查
    2. 每个容器都有自己的容器启动顺序菜单。如果某个容器需要先启动其他容器才能启动,请使用容器启动顺序菜单选择必须先启动的容器。
  4. 完成任何其他必需配置,然后点击创建(对于新工作器池)或部署(对于现有工作器池)。等待部署完成。

gcloud

在使用 Google Cloud CLI 指定启动顺序之前,请配置启动健康检查

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 如需将多个容器部署到具有指定启动顺序的服务,请运行以下命令:

  3. gcloud beta run worker-pools deploy WORKER_POOL \
         --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
         --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
         --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

    替换以下内容:

    • WORKER_POOL:工作器池的名称。
    • IMAGE_URL:对包含工作器池的容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • SIDECAR_IMAGE:对边车容器映像的引用。

      如果要在部署命令中配置每个容器,请在 container 参数后面提供每个容器的配置。

查看工作器池的容器配置

  1. 在 Google Cloud 控制台中,前往 Cloud Run:

    转到 Cloud Run

  2. 点击工作器池以显示已部署的工作器池列表。

  3. 点击要检查的工作器池,以显示其详细信息窗格。

  4. 点击容器标签页以显示工作器池容器配置。