Cloud Run 工作器池的实例分块和回滚

工作器池可处理非请求工作负载。对于需要在多个修订版本之间拆分工作的用例(例如部署新修订版本),工作器池会使用实例拆分。

Cloud Run 可让您指定哪些修订版本接收实例,并为每个修订版本指定实例分配百分比。借助此功能,您可以回滚到先前的修订版本,在多个修订版本之间拆分实例,以及将实例分配给最新修订版本。本页介绍如何使用此功能管理 Cloud Run 修订版本的实例分配。

实例分配调整不是即时的。更改修订版本的实例分配时,所有正在处理的请求都将继续完成。 正在进行的请求不会被丢弃,并且 Cloud Run 可能会在过渡期间将这些请求定向到新修订版本或先前的修订版本。

实例拆分的生命周期

如果您在多个修订版本之间拆分实例或将实例分配到先前的修订版本,则日后所有后续部署都将使用该实例拆分模式。如需回到仅使用最新修订版本且不进行实例拆分,请将所有实例发送到最新修订版本

所需的角色

如需获得管理 Cloud Run 工作器池和工作器池修订版本所需的权限,请让管理员向您授予 Cloud Run 工作器池的 Cloud Run Developer (roles/run.developer) IAM 角色。

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

回滚到先前的修订版本

如需回滚到之前的修订版本,请使用 Google Cloud 控制台或 Google Cloud CLI:

控制台

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

    转到 Cloud Run

  2. 在列表中找到相应工作器池,然后点击它。

  3. 点击修订版本标签页,以显示该工作器池的当前修订版本列表。

  4. 点击管理实例分块以显示“管理实例”表单。 Cloud Run 会列出最新提供服务的修订版本。在表单中,配置以下详细信息:

    1. 添加修订版本,然后使用下拉列表选择之前的修订版本。
    2. 将上一个修订版本的流量百分比设置为 100。
    3. 将当前提供的修订版本的百分比设置为 0。
    4. 点击保存

gcloud

运行以下命令,指定要回滚到的修订版本。

   gcloud beta run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100

替换以下内容:

  • WORKER_POOL:工作器池的名称。
  • REVISION:您要回滚到的修订版本的名称。

在多个修订版本之间拆分实例

如需在两个或更多个修订版本之间拆分实例,请使用 Google Cloud 控制台或 Google Cloud CLI:

在多个修订版本之间拆分实例时,请确保所有修订版本的总百分比等于 100%,并且手动实例的数量必须大于为工作负载提供服务的实例拆分数量。

控制台

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

    转到 Cloud Run

  2. 在列表中找到相应工作器池,然后点击它。

  3. 点击修订版本标签页,以显示该工作器池的当前修订版本列表。

  4. 点击管理实例分块以显示“管理实例”表单。 Cloud Run 会列出最新提供服务的修订版本。在表单中,配置以下详细信息:

    1. 将最新提供版本的百分比设置为所需的拆分比例,例如将其从 100% 降低。

    2. 点击添加修订版本,然后使用下拉列表选择之前的某个修订版本,并设置其对应的拆分百分比。

    3. 如需拆分具有其他修订版本的实例,请点击添加修订版本,然后选择其他修订版本并设置其百分比。

    4. 点击保存

gcloud

运行以下命令,指定修订版本和实例百分比。以英文逗号分隔列表的形式为每个修订版本分配实例

   gcloud beta run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST

替换以下内容:

  • WORKER_POOL:工作器池的名称。

  • LIST:以英文逗号分隔的修订版本和百分比列表:

    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.

    例如 my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90

将实例分配给最新修订版本

部署新修订版本时,您可以将 100% 的实例分配给此修订版本及所有今后的修订版本,并替换任何已设定的实例拆分。如需将 100% 的实例分配给最新修订版本,请运行以下命令:

  • 使用 --to-latest 标志可将 100% 的实例定向到最新修订版本,并自动将所有实例分配给您部署的任何新修订版本:

    gcloud beta run worker-pools update-instance-split WORKER_POOL --to-latest
    
  • 您可以选择性地将 --to-revisions 标志与 LATEST 关键字搭配使用,以便在部署最新修订版本时,始终将一定比例的实例分配给该版本。如需设置始终浮动到最新修订版本的实例百分比,请运行以下命令:

    gcloud beta run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGE
    

    替换以下内容:

    • WORKER_POOL:工作器池的名称。
    • PERCENTAGE:要为最新修订版本和未来的最新修订版本分配的实例百分比。

后续步骤