Configurar redes de VPC compartidas

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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

Directrices para la VPC compartida

Proyectos de servicio y host de Cloud Composer
Imagen 1. Proyectos de servicio y host de Cloud Composer
  • Para usar la VPC compartida, debes designar un proyecto host al que pertenezcan las redes y las subredes, y un proyecto de servicio, que se vinculará al proyecto host. Cuando Cloud Composer participa en una VPC compartida, el entorno de Cloud Composer se encuentra en el proyecto de servicio.

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

    • Intervalo de IPs principal de la subred que usan los nodos de GKE que Cloud Composer usa como capa de Compute Engine.
    • Intervalo de IPs secundario para los servicios de GKE.
    • Intervalo de IP secundario para pods de GKE.
  • Los intervalos de IP secundarios no pueden solaparse con ningún otro intervalo secundario de esta VPC.

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

    Consulta las directrices para configurar intervalos secundarios para pods y servicios en el artículo Crear un clúster nativo de VPC.

  • El intervalo 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 de tus entornos, añade los intervalos de IP de los nodos y los pods a la sección nonMasqueradeCIDRs del ConfigMap ip-masq-agent. Para obtener más información, consulta el artículo sobre cómo configurar un agente de enmascaramiento de IP.

Preparación

  1. Busca los siguientes IDs 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 tus proyectos host y de servicio.

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

Configurar el proyecto de servicio

Si nunca se han creado entornos de Cloud Composer en el proyecto de servicio, aprovisiona la cuenta de agente de servicio de Composer en el proyecto de servicio:

gcloud beta services identity create --service=composer.googleapis.com

Configurar el proyecto del host

Configura el proyecto host como se describe más adelante.

(IP privada) Habilitar el acceso privado de Google

Si tienes previsto usar entornos de IP privada, habilita Acceso privado de Google en la subred del proyecto host. Puedes hacerlo en el paso siguiente, cuando configures los recursos de red de una subred nueva o de una que ya tengas.

Si tienes previsto usar entornos de IP pública, te recomendamos que habilites el acceso privado a Google en la subred del 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 cortafuegos de salida de IPv4 implícita. Es necesario para acceder a los endpoints de *.googleapis.com correctamente.

Configurar recursos de red

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

Configurar VPC compartida y asociar el proyecto de servicio

  1. Si aún no lo has hecho, configura la VPC compartida. Si ya has configurado la VPC compartida, ve al siguiente paso.

  2. Adjunta el proyecto de servicio que usas para alojar entornos de Cloud Composer.

    Cuando adjuntes un proyecto, deja los permisos de red de VPC predeterminados.

Conceder permisos a la cuenta de agente de servicio de Composer

En el proyecto del host:

  1. Edita los permisos de la cuenta de agente de servicio de Composer. service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

  2. En esta cuenta, añade otro rol a nivel de proyecto:

    • En los entornos de IP privada, añade el rol Composer Shared VPC Agent.

    • En los entornos de IP pública, añade el rol Compute Network User.

Conceder permisos a la cuenta de agente de servicio de la API de Google

En el proyecto del host:

  1. Edita los permisos de la cuenta Agente de servicios de APIs de Google, SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

  2. Añade otro rol, Usuario de red de Compute (compute.networkUser), a nivel de proyecto. Este es un requisito para los grupos de instancias gestionados que se usan con una VPC compartida, ya que este tipo de cuenta de servicio realiza tareas como la creación de instancias.

Editar los permisos de las cuentas de servicio de GKE

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

En cada cuenta de servicio, añade otro rol compute.networkUser con una de las siguientes opciones:

  • Concede este rol a nivel de subred para permitir que una cuenta de servicio configure las conexiones de VPC que requiere Cloud Composer. En este caso, especifica explícitamente la subred que debe usar el entorno, ya que es posible que el clúster del entorno no tenga permisos para encontrar la subred en la red.

  • Concede este rol a nivel de proyecto para todo el proyecto del host. En este caso, la cuenta de servicio de GKE del proyecto de servicio tiene permisos para usar cualquier subred del proyecto host.

Editar los permisos de la cuenta de servicio de GKE del proyecto de servicio

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

A esta cuenta, añade otro rol a nivel de proyecto: Usuario agente de servicio del host de Kubernetes Engine (roles/container.hostServiceAgentUser).

De esta forma, la cuenta de servicio de GKE del proyecto de servicio puede usar la cuenta de servicio de GKE del proyecto host para configurar recursos de red compartidos.

(IP privada, opcional) Configura reglas de cortafuegos y conectividad a dominios de Google

En una configuración de VPC compartida con entornos de IP privada, puedes enrutar todo el tráfico a las APIs y los servicios de Google a través de varias direcciones IP que pertenezcan al dominio private.googleapis.com y configurar las reglas de cortafuegos correspondientes. En esta configuración, tu entorno accede a las APIs y los servicios de Google solo a través de direcciones IP enrutables desde Google Cloud. Si tu configuración de VPC compartida usa Controles de Servicio de VPC, enruta el tráfico a través de restricted.googleapis.com en su lugar.

Si tu configuración de VPC compartida usa entornos de IP privada:

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

Si tu configuración de VPC compartida usa Controles de Servicio de VPC, sigue las instrucciones para entornos con Controles de Servicio de VPC:

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

Conclusión

Has completado la configuración de la red de VPC compartida tanto para los proyectos de servicio como para los del host.

Ahora puedes crear entornos en el proyecto de servicio que usen la red de VPC del proyecto host.

Siguientes pasos