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](https://cloud.google.com/static/composer/docs/images/service-host-projects.png?authuser=5&hl=es)
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 ConfigMapip-masq-agent
. Para obtener más información, consulta Configura un agente de enmascaramiento de IP.
Preparación
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.
Habilita la API de GKE en el proyecto de servicio y el proyecto host.
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 congcloud
, 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.
Opción 1. Crea una nueva red de VPC, subred y dos rangos de IP secundarios.
Cuando crees la subred, usa el rango de IP principal según las pautas anteriores.
Cuando definas la subred, define dos rangos de IP secundarios para los pods y los servicios.
Opción 2 Crea una subred y dos rangos de IP secundarios en una VPC existente.
Cuando crees la subred, usa el rango de IP principal según las pautas anteriores.
Cuando definas la subred, define dos rangos de IP secundarios para los pods y los servicios.
Opción 3 Crea dos rangos de IP secundarios en una subred y una VPC existentes.
- Define dos rangos de IP secundarios para Pods y objetos de Service según los lineamientos. Evita conflictos de nombre y rango de IP con rangos secundarios existentes.
Configura la VPC compartida y vincula el proyecto de servicio
Si aún no lo hiciste, configura la VPC compartida. Si ya configuraste una VPC compartida, sigue con el próximo paso.
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:
- (Opcional) Configura la conectividad con los servicios y las APIs de Google.
- (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:
Edita permisos para la cuenta de servicio del agente de Composer
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
.En el proyecto host ocurre lo siguiente:
Edita permisos para la cuenta de servicio del agente de Composer,
service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com
.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?
- Crea un entorno de Cloud Composer y proporciona la red y la subred del proyecto host como parámetros de configuración.