Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se explica cómo tu entorno puede acceder a una red de VPC en Cloud Composer 3 proporciona instrucciones para conectar un entorno a una VPC y describe cómo inhabilitar una conexión configurada previamente.
Si deseas habilitar o inhabilitar el acceso a Internet para los componentes de Airflow de tu entorno, consulta Cómo cambiar el tipo de red del entorno (IP privada o pública).
Si quieres inhabilitar o habilitar el acceso a Internet solo cuando instalas PyPI paquetes, consulta Configura el acceso a Internet cuando instales paquetes de PyPI.
Si deseas configurar redes de VPC compartidas, consulta Configura una VPC compartida para obtener información sobre cómo configurar proyectos y permisos.
Información acerca del acceso a la red de VPC
En Cloud Composer 3, puedes habilitar el acceso a una red de VPC para un entorno.
Si habilitas el acceso a una red de VPC para un entorno, ocurrirá lo siguiente:
Componentes de Airflow de tu entorno pueden acceder a los extremos de red privada en tu red de VPC. Por ejemplo: tu código DAG puede acceder a los recursos ubicados en tu red de VPC a través de un configurar la conexión de Airflow.
Si tu entorno usa redes con IP privadas todo el tráfico interno se enruta a tu red de VPC, excepto el tráfico a las APIs, los servicios y los dominios de Google están disponibles para entornos de IP privada a través del Acceso privado a Google.
Según cómo configures tu red de VPC, un entorno de IP privada puede obtener acceso a Internet a través de tu red de VPC.
Las Zonas de DNS privadas definidas en tu red de VPC están disponibles automáticamente para los componentes de Airflow de tu entorno.
El entorno reserva dos direcciones IP en tu subred de VPC.
Cloud Composer usa un adjunto de red para conectar tu entorno a una red de VPC:
Si especificas una red y una subred de VPC, Cloud Composer crea un nuevo adjunto de red en tu proyecto. Este archivo adjunto se borra después de borrar un entorno, inhabilitar la conexión a una red de VPC o reemplazar los parámetros de conexión de la VPC.
Si especificas un adjunto de red existente, debe estar ubicado en el mismo proyecto con el entorno. Esta el adjunto no se borrará después de borrar un entorno, inhabilitar la conexión o reemplazar los parámetros de conexión de VPC.
En las redes de VPC compartidas, ocurre lo siguiente:
Asegúrate de haber configurado las herramientas de redes de VPC compartidas para Cloud Composer. Consulta Configura la VPC compartida para obtener información sobre la configuración. proyectos y permisos para Cloud Composer.
Después de configurar las redes de VPC compartidas, puedes conectar tu entorno a una red de VPC desde el proyecto host. Si usas un adjunto de red existente, se debe crear en el proyecto de servicio (donde se encuentra el entorno) y adjuntarse a una red de VPC compartida.
Acerca del rango de IP internas del entorno
Los entornos de Cloud Composer 3 requieren varias direcciones IP para sus componentes que se ejecutan en el proyecto de usuario, como el clúster de tu entorno y el proxy de Cloud SQL. Estas direcciones IP son del rango de IP internas del entorno.
El rango de IP interno predeterminado es
100.64.128.0/20
.Puedes especificar un rango de IP interno diferente cuando creas un entorno. Este rango debe usar una máscara
/20
.No puedes cambiar el rango de IP interno de un entorno existente.
El rango de IP internas interactúa con tu red de VPC de las siguientes maneras:
El rango de IP internas no debe entrar en conflicto con la subred de VPC a la que El entorno de Cloud Composer al que está conectado. No es posible para habilitar una conexión con una subred de VPC que se superponga con la un rango de IP internas.
Si el rango de IP internas de un entorno se superpone con tu VPC rangos de red, entonces los extremos de tu red de VPC que tienen las direcciones IP superpuestas no son accesibles desde el entorno.
Por ejemplo, si el rango interno es
100.64.128.0/20
, cualquier solicitud al extremo100.64.128.1
en tu red de VPC fallará porque la solicitud no sale del proyecto del inquilino.El rango de IP interno no está reservado. Puedes usar el mismo rango de IP interno para varios entornos sin ninguna configuración adicional, ya que las redes de VPC internas que usan diferentes entornos están separadas.
Puedes usar las direcciones IP del rango interno para otros fines, siempre que los DAG y las tareas de tu entorno no les realicen solicitudes.
Conectarse a una red de VPC
Console
En la consola de Google Cloud, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
En la sección Configuración de red, busca la Elemento Adjunto de red y haz clic en Editar.
En el diálogo Conexión de red, haz lo siguiente:
Para crear un nuevo adjunto de red, en Adjunto de red selecciona Crear un nuevo adjunto de red. En las listas Red y Subred, selecciona una red de VPC y una subred.
Para usar un adjunto de red existente, en la lista Adjunto de red, selecciona uno.
Haz clic en Guardar.
gcloud
Los siguientes argumentos de Google Cloud CLI especifican la conexión de red de VPC parámetros:
--network
: Es el ID de la red de VPC.--subnetwork
: Es el ID de la subred de VPC.--network-attachment
: Usa un adjunto de red existente en su lugar.
Nuevo adjunto de red
Para conectar tu entorno a una red de VPC a través de una red nueva adjunto, ejecuta el siguiente comando de Google Cloud CLI:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre del entorno.LOCATION
: Es la región en la que se encuentra el entorno.NETWORK_ID
: ID de la red de VPCSUBNETWORK_ID
: ID de la subred de VPC
Ejemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--network projects/example-project/global/networks/example-network \
--subnetwork projects/example-project/regions/us-central1/subnetworks/example-subnetwork
Archivo adjunto de red existente
Para conectar tu entorno a una red de VPC a través de un nuevo elemento de conexión de red, ejecuta el siguiente comando de Google Cloud CLI:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network-attachment NETWORK_ATTACHMENT_ID
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre del entorno.LOCATION
: Es la región en la que se encuentra el entorno.NETWORK_ATTACHMENT_ID
: Es el adjunto de red en el formatoprojects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Ejemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
API
Crea una solicitud a la API de
environments.patch
.En esta solicitud, realiza lo siguiente:
Para crear un adjunto de red nuevo, sigue estos pasos:
En el parámetro
updateMask
, especifica la máscaraconfig.node_config.network,config.node_config.subnetwork
.En el cuerpo de la solicitud, en
network
ysubnetwork
especifica tus IDs de subred y de red de VPC.
Para usar un archivo adjunto de red existente, haz lo siguiente:
En el parámetro
updateMask
, especificaconfig.node_config.composer_network_attachment
máscara.En el cuerpo de la solicitud, proporciona un valor para el archivo adjunto de red existente en el formato
projects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Ejemplo (nuevo adjunto de red):
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork
"config": {
"nodeConfig": {
"network": "projects/example-project/global/networks/example-network",
"subnetwork": "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
}
}
Ejemplo (adjunto de red existente):
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.composer_network_attachment
"config": {
"nodeConfig": {
"composerNetworkAttachment": "projects/example-project/regions/us-central1/networkAttachments/example-network-attachment"
}
}
Terraform
Los siguientes campos del bloque node_config
especifican la red de VPC
parámetros de conexión:
network
: Es el ID de la red de VPC.subnetwork
: Es el ID de la subred de VPC.composer_network_attachment
: Usa un adjunto de red existente en su lugar.
Nuevo adjunto de red
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
network = NETWORK_ID
subnetwork = SUBNETWORK_ID
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.NETWORK_ID
: ID de la red de VPCSUBNETWORK_ID
: ID de subred de VPC
Ejemplo (nuevo adjunto de red):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
network = "projects/example-project/global/networks/example-network"
subnetwork = "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
}
... other configuration parameters
}
}
Adjunto de red existente
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
composer_network_attachment = NETWORK_ATTACHMENT_ID
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.NETWORK_ATTACHMENT_ID
: Es el ID del adjunto de red.
Ejemplo (adjunto de red existente):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
}
... other configuration parameters
}
}
Inhabilita la conexión a una red de VPC
Console
En la consola de Google Cloud, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
En la sección Configuración de red, busca la Elemento Adjunto de red y haz clic en Editar.
En el diálogo Adjunto de red, selecciona Ninguno y haz clic en Guardar.
gcloud
Los argumentos --disable-vpc-connectivity
inhabilitan la conexión de red de VPC de tu entorno:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-vpc-connectivity
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre del entorno.LOCATION
: Es la región en la que se encuentra el entorno.
Ejemplo:
gcloud beta composer environments update example-environment \
--location us-central1 \
--disable-vpc-connectivity
API
Crea una solicitud a la API de
environments.patch
.En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask
, especifica la máscaraconfig.node_config.network,config.node_config.subnetwork
.En el cuerpo de la solicitud, en los campos
network
ysubnetwork
, haz lo siguiente: especificar valores vacíos.
Ejemplo:
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork
"config": {
"nodeConfig": {
"network": "",
"subnetwork": ""
}
}
Terraform
No es posible desconectar una red de VPC con Terraform. En su lugar, puedes adjuntar una red de VPC diferente o desconectarla con otras herramientas, como Google Cloud CLI.
¿Qué sigue?
- Cambia el tipo de red del entorno (IP privada o pública)
- Configura el acceso a Internet cuando instales paquetes de PyPI