Configurar herramientas de redes de VPC compartidas

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 servicio y host 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 al 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 nodos y Pods a la sección nonMasqueradeCIDRs del ConfigMap de 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 de servicio

Si los entornos de Cloud Composer nunca se crearon en el proyecto de servicio, aprovisiona la cuenta del agente de servicio de Composer en el proyecto de servicio:

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

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 habilitar el Acceso privado a Google para la subred en el proyecto host. Si eliges no usar el Acceso privado a Google, asegúrate de no bloquear el tráfico que, de lo contrario, la regla de firewall de permiso de salida IPv4 implícita permitiría. Esto es necesario para acceder a *.googleapis.com extremos correctamente.

Configura recursos de herramientas de redes

Elige una de las siguientes opciones para asignar y configurar los recursos de red. En cada opción, debes nombrar los rangos de IP secundarios 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.

Otorga permisos a la cuenta del agente de servicio de Composer

En el proyecto host ocurre lo siguiente:

  1. Editar permisos para la cuenta del agente de servicio 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.

Otorga permisos a la cuenta del agente de servicio de la API de Google

En el proyecto host ocurre lo siguiente:

  1. Edita los permisos de la cuenta del agente de servicio de la API de Google, SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

  2. Agrega otra función, Usuario de la red de Compute (compute.networkUser) a nivel del 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, con una de las siguientes opciones:

  • Otorga esta función a nivel de la subred para permitir que una cuenta de servicio configure los intercambios de tráfico entre VPC que requiere Cloud Composer. En este caso, especifica de forma explícita la subred que usará el entorno, ya que su clúster podría carecer de permisos para encontrar la subred dentro de la red.

  • Otorga esta función a nivel de proyecto 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 de la cuenta de servicio de GKE del proyecto de servicio.

Para esta cuenta, agrega otro rol a nivel de proyecto, Usuario del agente de servicios de host de Kubernetes Engine (roles/container.hostServiceAgentUser).

Esto permite que la cuenta de servicio de GKE del proyecto de servicio use la cuenta de servicio de GKE del proyecto host para configurar los recursos de la red compartida.

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

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

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

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

Si tu configuración de VPC compartida usa Controles del servicio de VPC, usa las instrucciones para entornos con Controles del servicio de VPC en su lugar:

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

Conclusión

Completaste la configuración de la red de VPC compartida para los proyectos de servicio y host.

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

¿Qué sigue?