Cómo usar los entornos de ejecución de Cloud Deploy

Un entorno de ejecución de Cloud Deploy es el entorno en el que Cloud Deploy ejecuta sus operaciones de renderización, preimplementación, implementación, verificación y postimplementación. El entorno de ejecución consta de los siguientes componentes:

  • El grupo de trabajadores de Cloud Build (predeterminado o privado) en el que Cloud Deploy ejecuta operaciones de renderización, preimplementación, implementación, verificación y postimplementación

  • La cuenta de servicio (predeterminada o alternativa) que llama a Cloud Deploy para realizar estas acciones

  • La ubicación de almacenamiento (predeterminada o alternativa) para los manifiestos renderizados en Cloud Storage

  • El tiempo de espera de Cloud Build para las operaciones (predeterminado o personalizado)

En este artículo, se describe el entorno de ejecución, las cuentas de servicio y el almacenamiento predeterminadas de Cloud Deploy, así como por qué y cómo puedes cambiar estos parámetros predeterminados.

Valores predeterminados

Los siguientes son los valores predeterminados que usa Cloud Deploy para ejecutar, ejecute la renderización y la implementación, y almacene recursos, como manifiestos renderizados:

  • Grupo de trabajadores predeterminado

    De forma predeterminada, Cloud Deploy se ejecuta en el grupo de trabajadores predeterminado de Cloud Build. Sin embargo, puedes configurar Cloud Deploy para usar un grupo de trabajadores privado de Cloud Build.

    Para obtener más detalles sobre los grupos de trabajadores, consulta la Descripción general de los grupos predeterminados y privados de Cloud Build.

  • Cuenta de servicio de ejecución predeterminada

    De forma predeterminada, Cloud Deploy usa la cuenta de servicio predeterminada de Compute Engine.

  • Ubicación de almacenamiento predeterminada de Cloud Deploy

    Este valor es el bucket de Cloud Storage en el que Cloud Deploy almacena tus manifiestos renderizados. De forma predeterminada, Cloud Deploy crea un bucket de Cloud Storage en la misma región que los recursos de Cloud Deploy, con el siguiente formato:

    <location>.deploy-artifacts.<project ID>.appspot.com

  • Tiempo de espera predeterminado de Cloud Build

    De forma predeterminada, Cloud Build tiene un tiempo de espera de 1 hora en las operaciones que realiza para Cloud Deploy. Puedes cambiar ese tiempo de espera en la especificación del entorno de ejecución en la configuración de destino.

  • Verbosidad predeterminada para Skaffold, gcloud CLI y kubectl

    De forma predeterminada, los niveles de registro de estas herramientas se establecen en sus valores predeterminados, por lo general, warn o el equivalente. Puedes cambiarlo a debug o al equivalente.

En las siguientes secciones, se describen las circunstancias en las que cambiarías cualquiera de estos valores y los vínculos a las instrucciones para hacerlo.

Información acerca de los grupos de trabajadores de Cloud Build

El entorno de ejecución de Cloud Deploy puede usar una de las siguientes opciones:

  • El grupo predeterminado de Cloud Build

    El grupo de trabajadores predeterminado es un entorno alojado y seguro con acceso a la Internet pública. Las operaciones de renderización, implementación, implementación previa, implementación posterior y verificación se ejecutan en ese grupo, aisladas de otras cargas de trabajo.

  • Un grupo privado

    Los grupos de trabajadores privados son grupos privados y dedicados que se pueden personalizar más que el grupo de trabajadores predeterminado. Esa personalización puede incluir la capacidad de acceder a recursos en una red privada. Al igual que el grupo de trabajadores predeterminado, los grupos de trabajadores privados se alojan y administran por completo con Cloud Build. Estos grupos pueden aumentar o disminuir su escala hasta cero, sin necesidad de infraestructura para configurar, actualizar ni escalar.

    En la descripción general de los grupos privados de Cloud Build, se describen los grupos de trabajadores predeterminados y privados de forma más detallada, incluida una tabla que compara sus funciones.

Cambia el entorno de ejecución de Cloud Deploy

Puedes cambiar el entorno de ejecución de Cloud Deploy en las siguientes circunstancias:

  • Quieres implementar en un clúster privado de Google Kubernetes Engine.

  • Quieres que las operaciones de renderización, implementación, implementación previa, posterior o verificación, o una combinación de las cinco, se realicen en un entorno aislado de otras organizaciones.

  • Deseas que estas operaciones se realicen en un entorno que no esté conectado a la Internet pública.

  • Quieres entornos separados para la renderización y la implementación.

  • Quieres usar una cuenta de servicio dedicada con permisos más específicos para tu uso que los permisos disponibles en la cuenta de servicio predeterminada.

  • Quieres almacenar manifiestos renderizados en una ubicación diferente del bucket predeterminado de Cloud Storage.

La configuración de las tres partes del entorno de ejecución (grupo de trabajadores, cuenta de servicio y almacenamiento) se realiza por destino, en la configuración de YAML de cada destino.

Cómo cambiar del grupo predeterminado a un grupo privado

Los grupos de trabajo se configuran por destino, de modo que el grupo se use para RENDER, DEPLOY, PREDEPLOY, POSTDEPLOY o VERIFY (o una combinación de los cinco) solo para ese destino.

Para usar el grupo de trabajadores predeterminado para las operaciones de renderización y de implementación, no necesitas hacer nada.

A continuación, se muestra una configuración de destino de muestra que especifica un grupo de trabajadores privado para DEPLOY y el grupo de trabajadores predeterminado para RENDER, PREDEPLOY, POSTDEPLOY y VERIFY:

executionConfigs:
- usages:
  - DEPLOY
  privatePool:
    workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
  - RENDER
  - PREDEPLOY
  - VERIFY
  - POSTDEPLOY

Para obtener más información sobre cómo configurar grupos privados para los destinos, consulta la documentación de configuración de la canalización de publicación.

Cómo cambiar de la cuenta de servicio de ejecución predeterminada a una personalizada

Al igual que con el grupo de trabajadores, puedes especificar una cuenta de servicio alternativa para usar en la renderización o implementación (o ambas) por objetivo. Para ello, agrega la siguiente línea a la configuración de destino, después del elemento workerPool:

serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"

La cuenta de servicio especificada debe incluir el rol clouddeploy.jobRunner, como se describe en el documento Cuentas de servicio de Cloud Deploy.

Consulta Definiciones de objetivos para obtener más detalles sobre esta configuración.

Cómo cambiar la ubicación de almacenamiento

Para cambiar el bucket de almacenamiento del valor predeterminado de Cloud Deploy, agrega la siguiente línea a la definición de destino en la estrofa workerPool:

artifactStorage: "gs://[bucket_name]/[dir]"

Esta configuración cambia el lugar donde se almacenan los manifiestos renderizados, pero no afecta dónde se almacena la fuente de renderización.

Cambia el nivel de registro de Skaffold, gcloud CLI y kubectl

Para cambiar el nivel de registro de Skaffold, gcloud CLI y kubectl de sus valores predeterminados a debug (o el equivalente), establece verbose en true en las configuraciones de ejecución. A continuación, se presenta un ejemplo:

executionConfigs:
- usages:
  - [RENDER | PREDEPLOY|  DEPLOY | VERIFY | POSTDEPLOY]
  workerPool:
  serviceAccount:
  artifactStorage:
  executionTimeout:
  verbose: true

Usa Cloud Deploy en un perímetro de Controles del servicio de VPC

Cloud Deploy es compatible con los Controles del servicio de VPC.

Puedes seguir la Guía de inicio rápido de los Controles del servicio de VPC para configurar un perímetro de servicio.

Limitaciones

  • Debes usar un grupo de trabajadores privado de Cloud Build para el entorno de ejecución de destino, no el grupo de trabajadores predeterminado.

  • El proyecto que contiene el grupo de trabajadores y el proyecto que contiene tus recursos de Cloud Deploy deben permanecer en el mismo perímetro de seguridad de los Controles del servicio de VPC.

  • Cualquier clúster de GKE al que implementes en el perímetro de los Controles del servicio de VPC debe ser un clúster privado.

    A fin de configurar un grupo privado para un clúster privado, consulta este instructivo.

¿Qué sigue?