Configurar una VPC compartida

Cloud Composer 1 | Cloud Composer 2

En esta página, se describen los requisitos de proyecto host y de la red de VPC compartida para Cloud Composer.

La VPC compartida permite que las organizaciones establezcan límites de presupuesto y de control de acceso a nivel de proyecto y, al mismo tiempo, posibilita una comunicación segura y eficiente mediante IP privadas en esos límites. En la configuración de la VPC compartida, Cloud Composer puede invocar servicios alojados en otros proyectos de Google Cloud en la misma organización sin exponer los servicios a la Internet pública.

Lineamientos para la VPC compartida

Proyectos de host y servicio para Cloud Composer
Figura 1. Proyectos de servicio y host para Cloud Composer
  • La VPC compartida requiere que designes un proyecto host al que pertenecen las redes y subredes, y un proyecto de servicio, que se adjunta al proyecto host. Cuando Cloud Composer participa en una VPC compartida, el entorno de Cloud Composer está en el proyecto de servicio.

  • Para configurar una VPC compartida, selecciona los siguientes rangos de IP en el proyecto host:

    • Rango de IP principal de la subred que usan los nodos de GKE que Cloud Composer usa como capa Compute Engine.
    • Rango de IP secundario para servicios de GKE.
    • Rango de IP secundario para Pods de GKE.
  • Los rangos de IP secundarios no pueden superponerse con ningún otro rango secundario en esta VPC.

  • Asegúrate de que los rangos secundarios sean lo suficientemente grandes como para adaptarse al tamaño del clúster y el escalamiento de tu entorno.

    Consulta Crea un clúster nativo de la VPC a fin de obtener pautas sobre la configuración de rangos secundarios para pods y servicios.

  • El rango de direcciones principal de la subred debe adaptarse al crecimiento previsto y tener en cuenta las direcciones IP no utilizables.

  • Si usas el agente de enmascaramiento de IP y la configuración de IP privada para tus entornos, agrega los rangos de IP de los nodos y pods a la sección nonMasqueradeCIDRs del ConfigMap ip-masq-agent. Para obtener más información, consulta Configura un agente de enmascaramiento de IP.

Preparación

  1. Busca los siguientes ID del proyecto y números de proyecto:

    • Proyecto host: el proyecto que contiene la red de VPC compartida.
    • Proyecto de servicio: el proyecto que contiene el entorno de Cloud Composer.
  2. Prepara tu organización.

  3. Habilita la API de GKE en el proyecto de servicio y el proyecto host.

  4. Si creas un entorno en el proyecto de servicio con la consola de Google Cloud, tu cuenta debe tener el permiso compute.subnetworks.use en el proyecto host. De lo contrario, la lista de subredes disponibles no incluirá subredes del proyecto host. Si creas un entorno con gcloud, la API o Terraform, tu cuenta no necesita este permiso adicional.

Configura el proyecto host

Configura el proyecto host como se describe con más detalle.

(IP privada) Habilitar acceso privado a Google

Si planeas usar entornos de IP privada, habilita el Acceso privado a Google para la subred en el proyecto host. Puedes hacerlo en el siguiente paso, cuando configures los recursos de red para una subred nueva o existente.

Si planeas usar entornos de IP pública, te recomendamos que habilites el Acceso privado a Google para la subred en el proyecto host. Si decides no usar el Acceso privado a Google, asegúrate de no bloquear el tráfico que, de lo contrario, permitiría la regla de firewall de salida IPv4 implícita. Esto es necesario para llegar a los extremos *.googleapis.com de forma correcta.

Configura recursos de herramientas de redes

Elige una de las siguientes opciones para asignar y configurar recursos de red. Para cada opción, debes asignar un nombre a los rangos de IP secundarias para los pods y los servicios.

Configura la VPC compartida y vincula el proyecto de servicio

  1. Si aún no lo hiciste, configura la VPC compartida. Si ya configuraste una VPC compartida, sigue con el próximo paso.

  2. Conecta el proyecto de servicio, que se usa para alojar entornos de Cloud Composer.

    Cuando adjuntes un proyecto, deja los permisos de la red de VPC predeterminada en su lugar.

Edita permisos para la cuenta de servicio de las API de Google

En el proyecto host, edita los permisos para la cuenta de servicio de las API de Google SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

En esta cuenta, agrega otra función, compute.networkUser a nivel de proyecto. Este es un requisito para los grupos de instancias administrados que se usan con VPC compartida porque este tipo de cuenta de servicio realiza tareas como la creación de instancias.

Edita permisos para cuentas de servicio de GKE

En el proyecto host, edita los permisos para las cuentas de servicio de GKE service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com.

Para cada cuenta de servicio, agrega otra función, compute.networkUser.

Otorga esta función a nivel de subred para permitir que una cuenta de servicio configure los intercambios de tráfico de VPC que requiere Cloud Composer. Ten en cuenta que, en este caso, deberás especificar de forma explícita la subred que usará el entorno, ya que es posible que el clúster de GKE no tenga permisos para encontrarla en la red.

Como alternativa, puedes otorgar esta función para todo el proyecto host. En este caso, la cuenta de servicio de GKE del proyecto de servicio tiene permisos para usar cualquier subred en el proyecto host.

Edita permisos para la cuenta de servicio de GKE del proyecto de servicio

En el proyecto host, edita los permisos para la cuenta de servicio de GKE del proyecto de servicio.

Para esta cuenta, agrega otra función a nivel de proyecto, Usuario del agente de servicios de host de Kubernetes Engine (roles/container.hostServiceAgentUser).

Con esto, la cuenta de servicio de GKE del proyecto de servicio podrá usar la cuenta de servicio de GKE del proyecto host a fin de configurar los recursos de la red compartida.

Configura las reglas de firewall y la conectividad con los dominios de Google (IP privada, opcional)

En una configuración de VPC compartida con entornos de IP privada, como opción, es posible que quieras enrutar todo el tráfico a las APIs y los servicios de Google a través de varias direcciones IP que pertenecen al dominio private.googleapis.com y configurar las reglas de firewall correspondientes. En esta configuración, el entorno accede a los servicios y las API de Google a través de direcciones IP que solo se pueden enrutar desde Google Cloud. Si la configuración de la VPC compartida usa los Controles del servicio de VPC, enruta el tráfico a través de restricted.googleapis.com.

Si la configuración de la VPC compartida usa entornos de IP privada, sigue estos pasos:

  1. (Opcional) Configura la conectividad con los servicios y las APIs de Google.
  2. (Opcional) Configura reglas de firewall.

Si la configuración de VPC compartida usa los Controles del servicio de VPC, sigue las instrucciones para los entornos con Controles del servicio de VPC:

  1. Configura la conectividad con los servicios y las APIs de Google.
  2. Configura reglas de firewall

Edita permisos para la cuenta de servicio del agente de Composer

  1. En el proyecto de servicio, si este es el primer entorno de Cloud Composer, aprovisiona la cuenta de servicio del agente de Composer: gcloud beta services identity create --service=composer.googleapis.com.

  2. En el proyecto host ocurre lo siguiente:

    1. Edita permisos para la cuenta de servicio del agente de Composer, service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com.

    2. Para esta cuenta, agrega otro rol a nivel de proyecto:

      • Para entornos de IP privada, agrega la función Composer Shared VPC Agent.

      • Para entornos de IP pública, agrega la función Compute Network User.

Completaste la configuración de la red de VPC compartida para el proyecto host.

¿Qué sigue?