Usar 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, previas al despliegue, de despliegue, de verificación y posteriores al despliegue. 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 las operaciones de renderización, predespliegue, despliegue, verificación y postdespliegue.

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

  • Ubicación de almacenamiento (predeterminada o alternativa) de los manifiestos renderizados en Cloud Storage.

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

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

Valores predeterminados

A continuación, se muestran los valores predeterminados que usa Cloud Deploy para ejecutar, renderizar y desplegar, así como para almacenar recursos, como los 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 que use un grupo de trabajadores privados de Cloud Build.

    Para obtener más información 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 segmento de Cloud Storage en el que Cloud Deploy almacena los manifiestos renderizados. De forma predeterminada, Cloud Deploy crea un segmento 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 de la configuración de destino.

  • Nivel de detalle predeterminado de Skaffold, la CLI de gcloud y kubectl

    De forma predeterminada, los niveles de registro de estas herramientas se definen en sus valores predeterminados respectivos, normalmente warn o el equivalente. Puedes cambiarlo a debug o el equivalente.

En las secciones siguientes se describen las circunstancias en las que cambiaría alguno de estos valores y se incluyen enlaces a las instrucciones para hacerlo.

Acerca de los grupos de trabajadores de Cloud Build

El entorno de ejecución de Cloud Deploy puede usar uno de los siguientes elementos:

  • El grupo predeterminado de Cloud Build

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

  • Una piscina privada

    Los grupos de trabajadores privados son grupos privados y específicos que se pueden personalizar más que el grupo de trabajadores predeterminado. Esta 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 están alojados y totalmente gestionados por Cloud Build. Estos grupos pueden escalar verticalmente o reducirse a cero, sin necesidad de configurar, actualizar ni escalar ninguna infraestructura.

    En el artículo Descripción general de los grupos privados de Cloud Build se describen con más detalle los grupos de trabajadores predeterminados y los grupos de trabajadores privados, y se incluye una tabla que compara sus funciones.

Cambiar el entorno de ejecución de Cloud Deploy

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

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

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

  • Quieres que estas operaciones se realicen en un entorno que no esté conectado a Internet público.

  • Quieres tener entornos independientes para renderizar y desplegar.

  • Quieres usar una cuenta de servicio específica con permisos que se ajusten más a tu uso que los permisos disponibles en la cuenta de servicio predeterminada.

  • Quieres almacenar los manifiestos renderizados en una ubicación distinta del segmento de Cloud Storage predeterminado.

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 YAML de cada destino.

Cambiar del grupo predeterminado a un grupo privado

Los grupos de trabajadores se configuran por destino, de forma que el grupo se usa 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 en las operaciones de renderización y despliegue, no tienes que hacer nada.

A continuación, se muestra un ejemplo de configuración de destino 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 entrega.

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 que se use para renderizar o desplegar (o ambas acciones) por cada destino. Para ello, añada 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, tal como se describe en el documento Cuentas de servicio de Cloud Deploy.

Consulta Definiciones de destino para obtener más información sobre esta configuración.

Cambiar la ubicación de almacenamiento

Para cambiar el segmento de almacenamiento predeterminado de Cloud Deploy, añade la siguiente línea a la definición de destino en la estrofa workerPool:

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

Esta configuración cambia la ubicación en la que se almacenan los manifiestos renderizados, pero no afecta a la ubicación en la que se almacena la fuente de renderización.

Cambiar el nivel de registro de Skaffold, la CLI de gcloud y kubectl

Para cambiar el nivel de registro de Skaffold, la interfaz de línea de comandos de gcloud y kubectl de sus valores predeterminados respectivos a debug (o el equivalente), asigna el valor true a verbose en las configuraciones de ejecución. Veamos un ejemplo:

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

Usar Cloud Deploy en un perímetro de Controles de Servicio de VPC

Cloud Deploy es compatible con Controles de Servicio de VPC.

Puedes seguir la guía de inicio rápido de Controles de Servicio de VPC para configurar un perímetro de servicio.

Limitaciones

  • Debes usar un grupo de trabajadores privados de Cloud Build para el entorno de ejecución del 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 Controles de Servicio de VPC.

  • Cualquier clúster de GKE que despliegues en el perímetro de Controles de Servicio de VPC debe ser un clúster privado.

    Para configurar un grupo privado en un clúster privado, consulta este tutorial.

Siguientes pasos