Los grupos de trabajadores de Cloud Run te permiten dividir las cargas de trabajo que no son de solicitud en varias revisiones mediante la división de instancias. Puedes asignar porcentajes de instancias específicos a cada revisión, revertir a una revisión anterior o cambiar todas las instancias a la revisión más reciente cuando implementes actualizaciones.
Ciclo de vida de las divisiones de instancias
Si divides instancias entre varias revisiones o asignas instancias a una revisión anterior, todas las implementaciones posteriores usarán ese patrón de división de instancias en el futuro. Para volver a usar solo la revisión más reciente sin división de instancias, envía todas las instancias a la revisión más reciente.
Los ajustes de asignación de instancias no son instantáneos. Cuando cambias la asignación de instancias para las revisiones, las tareas en proceso continúan hasta completarse y Cloud Run realiza la transición de las cargas de trabajo entre las revisiones anteriores y nuevas según la división actualizada.
Roles obligatorios
Para obtener los permisos que
necesitas para administrar los grupos de trabajadores y las revisiones de grupos de trabajadores de Cloud Run,
pídele a tu administrador que te otorgue el
rol de IAM de desarrollador de Cloud Run (roles/run.developer) en tu grupo de trabajadores de Cloud Run.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu grupo de trabajadores de Cloud Run interactúa con lasCloud de Confiance APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.
Revierte a una revisión anterior
Para revertir a una revisión anterior, usa la Cloud de Confiance consola o Google Cloud CLI:
Console
En la Cloud de Confiance by S3NS consola, ve a Grupos de trabajadores de Cloud Run:
Busca el grupo de trabajadores en la lista y haz clic en él.
Haz clic en la pestaña Revisiones para mostrar la lista de revisiones actuales de ese grupo de trabajadores.
Haz clic en Administrar divisiones de instancias para mostrar el formulario de administración de instancias. Cloud Run muestra la revisión de entrega más reciente. En el formulario, configura los siguientes detalles:
- Agregar revisión y usa la lista desplegable para seleccionar una revisión anterior.
- Establece el porcentaje de instancias de esa revisión anterior en 100.
- Establece el porcentaje de la revisión de entrega más reciente en 0.
- Haz clic en Guardar.
gcloud
Especifica las revisiones a las que deseas revertir ejecutando el siguiente comando.
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100
Reemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- REVISION: Es el nombre de la revisión a la que deseas revertir.
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
En el siguiente ejemplo, se incluye la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION percent: 100Reemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION: Es el nombre de la revisión a la que deseas revertir.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION"
percent = 100
}
}
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu Cloud de Confiance proyecto.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. - WORKER_POOL: Es el nombre del grupo de trabajadores.
IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION: Es el nombre de la revisión a la que deseas revertir.
Divide instancias entre varias revisiones
Para dividir instancias entre dos o más revisiones, usa la Cloud de Confiance consola o Google Cloud CLI:
Cuando divides instancias entre varias revisiones, asegúrate de que el porcentaje total en todas las revisiones sea igual al 100% y que la cantidad de instancias manuales sea mayor que la cantidad de divisiones de instancias que entregan la carga de trabajo.
Console
En la Cloud de Confiance by S3NS consola, ve a Grupos de trabajadores de Cloud Run:
Busca el grupo de trabajadores en la lista y haz clic en él.
Haz clic en la pestaña Revisiones para mostrar la lista de revisiones actuales de ese grupo de trabajadores.
Haz clic en Administrar divisiones de instancias para mostrar el formulario de administración de instancias. Cloud Run muestra la revisión de entrega más reciente. En el formulario, configura los siguientes detalles:
Establece el porcentaje de la revisión de entrega más reciente en la división requerida, por ejemplo, redúcelo del 100%.
Haz clic en Agregar revisión y usa la lista desplegable para seleccionar una revisión anterior y establecer su división de porcentaje correspondiente.
Para dividir instancias con revisiones adicionales, haz clic en Agregar revisión, y selecciona otra revisión y establece su porcentaje.
Haz clic en Guardar.
gcloud
Especifica las revisiones y el porcentaje de instancias ejecutando el siguiente comando. Asigna instancias para cada revisión en una lista delimitada por comas:
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST
Reemplaza lo siguiente:
WORKER_POOL: Es el nombre del grupo de trabajadores.
LIST: Es una lista delimitada por comas de revisiones y porcentajes:
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.
Por ejemplo,
my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90.
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
En el siguiente ejemplo, se incluye la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/scalingMode: manual spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION1 percent: PERCENTAGE1 - revisionName: REVISION2 percent: PERCENTAGE2Reemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. - INSTANCE_COUNT: Es la cantidad de instancias.
IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION1 y REVISION2: Son los nombres de las revisiones.
- PERCENTAGE1 y PERCENTAGE2: Son el porcentaje de instancias que se asignarán a cada una de estas revisiones. Estos deben sumar 100.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION1"
percent = PERCENTAGE1
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION2"
percent = PERCENTAGE2
}
}
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu Cloud de Confiance proyecto.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. - WORKER_POOL: Es el nombre del grupo de trabajadores.
IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION1 y REVISION2: Son los nombres de las revisiones.
- PERCENTAGE1 y PERCENTAGE2: Son el porcentaje de instancias que se asignarán a cada una de estas revisiones. Estos deben sumar 100.
Asigna instancias a la revisión más reciente
Cuando implementas una revisión nueva, puedes asignar el 100% de las instancias a esta revisión y a todas las futuras, lo que anula cualquier división de instancias establecida.
gcloud
Para asignar el 100% de las instancias a la revisión más reciente, ejecuta los siguientes comandos:
Usa la marca
--to-latestpara dirigir el 100% de las instancias a la revisión más reciente y asignar automáticamente todas las instancias a cualquier revisión nueva que implementes:gcloud run worker-pools update-instance-split WORKER_POOL --to-latestDe manera opcional, usa la marca
--to-revisionscon la palabra claveLATESTpara asignar siempre un porcentaje flotante de instancias a la revisión más reciente cuando implementes una. Para establecer un porcentaje de instancias que siempre flote a la revisión más reciente, ejecuta el siguiente comando:gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGEReemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- PERCENTAGE: Es el porcentaje de instancias que se asignarán a las revisiones más recientes y futuras.
YAML
Si creas un grupo de trabajadores nuevo, omite este paso. Si actualizas un grupo de trabajadores existente, descarga su configuración de YAML:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
En el siguiente ejemplo, se incluye la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - latestRevision: true percent: 100Reemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.
Crea o actualiza el grupo de trabajadores con el siguiente comando:
gcloud run worker-pools replace worker-pool.yaml
El comando
gcloud run worker-pools replaceusa de forma predeterminada el archivoworker-pool.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST"
percent = 100
}
}
Reemplaza lo siguiente:
- WORKER_POOL: Es el nombre del grupo de trabajadores.
- REGION: Es la Cloud de Confiance región, por ejemplo,
us-central1. IMAGE_URL: Es una referencia a la imagen del contenedor que contiene el grupo de trabajadores, comous-docker.pkg.dev/cloudrun/container/worker-pool:latest.