Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina spiega come il tuo ambiente può accedere a una rete VPC in Cloud Composer 3, fornisce istruzioni per connettere un ambiente a una rete VPC e descrive come disattivare una connessione configurata in precedenza.
Se vuoi attivare o disattivare l'accesso a internet per i componenti Airflow del tuo ambiente, consulta Modificare il tipo di networking dell'ambiente (IP privato o pubblico).
Se vuoi disattivare o attivare l'accesso a internet solo durante l'installazione dei pacchetti PyPI, consulta Configurare l'accesso a internet durante l'installazione dei pacchetti PyPI.
Se vuoi configurare la rete VPC condivisa, consulta la pagina Configura il VPC condiviso per informazioni sulla configurazione di progetti e autorizzazioni.
Informazioni sull'accesso alla rete VPC
In Cloud Composer 3, puoi abilitare l'accesso a una rete VPC per un ambiente.
Se abiliti l'accesso a una rete VPC per un ambiente:
I componenti Airflow del tuo ambiente possono accedere agli endpoint di rete privati nella tua rete VPC. Ad esempio, il codice DAG può accedere alle risorse che si trovano nella tua rete VPC tramite una connessione Airflow configurata.
Se il tuo ambiente utilizza il networking con IP privato, tutto il traffico interno viene indirizzato alla tua rete VPC, ad eccezione del traffico verso API, servizi e domini Google che sono disponibili per gli ambienti con IP privato tramite l'accesso privato Google.
A seconda di come configuri la rete VPC, un ambiente con IP privato può accedere a internet tramite la rete VPC.
Le zone DNS private definite nella tua rete VPC sono disponibili automaticamente per i componenti Airflow del tuo ambiente.
L'ambiente riserva due indirizzi IP nella subnet VPC e utilizza due indirizzi IP aggiuntivi durante la manutenzione e gli upgrade. Assicurati che nella subnet VPC siano disponibili quattro indirizzi IP per ambiente.
Cloud Composer utilizza un collegamento di rete per connettere il tuo ambiente a una rete VPC:
Se specifichi una rete VPC e una subnet, Cloud Composer crea un nuovo collegamento di rete nel tuo progetto. Questo collegamento viene eliminato dopo aver eliminato un ambiente, disattivato la connessione a una rete VPC o sovrascritto i parametri di connessione VPC.
Se specifichi un collegamento di rete esistente, deve trovarsi nello stesso progetto dell'ambiente. Questo collegamento non viene eliminato dopo l'eliminazione di un ambiente, la disattivazione della connessione o la sovrascrittura dei parametri di connessione VPC.
Nel networking VPC condiviso:
Assicurati di aver configurato la rete VPC condiviso per Cloud Composer. Consulta la pagina Configurare il VPC condiviso per informazioni sulla configurazione di progetti e autorizzazioni per Cloud Composer.
Una volta configurata la rete VPC condivisa, puoi connettere il tuo ambiente a una rete VPC dal progetto host. Se utilizzi un collegamento di rete esistente, questo deve essere creato nel progetto di servizio (dove si trova l'ambiente) e collegato a una rete VPC condiviso.
Limitazioni del peering DNS transitivo in Cloud Composer 3
Le limitazioni per il peering DNS transitivo si applicano a un ambiente Cloud Composer 3 nel seguente modo:
- Cloud DNS ha una limitazione di un hop transitivo, il che significa che sono supportati solo due hop in totale.
- In Cloud Composer 3, i componenti dell'ambiente vengono eseguiti nel progetto tenant e comunicano con il progetto in cui si trova l'ambiente tramite un peering VPC. L'hop transitivo viene utilizzato dal peering VPC del progetto tenant, quindi è possibile utilizzare un solo hop in totale.
Informazioni sull'intervallo IP interno dell'ambiente
Gli ambienti Cloud Composer 3 richiedono diversi indirizzi IP per i suoi componenti che vengono eseguiti nel progetto tenant, ad esempio il cluster dell'ambiente e il proxy Cloud SQL. Questi indirizzi IP vengono estratti dall'intervallo IP interno dell'ambiente.
L'intervallo IP interno predefinito è
100.64.128.0/20
.Puoi specificare un intervallo IP interno diverso quando crei un ambiente. Questo intervallo deve utilizzare una maschera
/20
.Non puoi modificare l'intervallo IP interno di un ambiente esistente.
L'intervallo IP interno interagisce con la tua rete VPC nei seguenti modi:
L'intervallo IP interno non deve entrare in conflitto con la subnet VPC a cui è connesso l'ambiente Cloud Composer. Non è possibile abilitare una connessione con una subnet VPC che si sovrappone all'intervallo di IP interni.
Se l'intervallo IP interno di un ambiente si sovrappone agli intervalli della rete VPC, gli endpoint della rete VPC con indirizzi IP sovrapposti non sono accessibili dall'ambiente.
Ad esempio, se l'intervallo interno è
100.64.128.0/20
, qualsiasi richiesta all'endpoint100.64.128.1
nella tua rete VPC non va a buon fine perché la richiesta non esce dal progetto tenant.L'intervallo IP interno non è riservato. Puoi utilizzare lo stesso intervallo IP interno per più ambienti senza alcuna configurazione aggiuntiva perché le reti VPC interne utilizzate da ambienti diversi sono separate.
Puoi utilizzare gli indirizzi IP dell'intervallo interno per altri scopi, a condizione che i DAG e le attività nel tuo ambiente non effettuino richieste.
Connessione a una rete VPC
Console
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Vai alla scheda Configurazione ambiente.
Nella sezione Configurazione di rete, trova l'elemento Collegamento di rete e fai clic su Modifica.
Nella finestra di dialogo Collegamento di rete:
Per creare un nuovo collegamento di rete, nell'elenco Collegamento di rete, seleziona Crea un nuovo collegamento di rete. Negli elenchi Rete e Subnet, seleziona una rete VPC e una subnet.
Per utilizzare un collegamento di rete esistente, seleziona un collegamento nell'elenco Collegamento di rete.
Fai clic su Salva.
gcloud
I seguenti argomenti della Google Cloud CLI specificano i parametri di connessione della rete VPC:
--network
: ID rete VPC.--subnetwork
: ID subnet VPC.--network-attachment
: utilizza un collegamento di rete esistente.
Nuovo collegamento di rete
Per connettere il tuo ambiente a una rete VPC tramite un nuovo collegamento di rete, esegui questo comando Google Cloud CLI:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome dell'ambienteLOCATION
: la regione in cui si trova l'ambienteNETWORK_ID
: ID rete VPCSUBNETWORK_ID
: ID subnet VPC
Esempio:
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
Collegamento di rete esistente
Per connettere il tuo ambiente a una rete VPC tramite un nuovo collegamento di rete, esegui questo comando Google Cloud CLI:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network-attachment NETWORK_ATTACHMENT_ID
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome dell'ambienteLOCATION
: la regione in cui si trova l'ambienteNETWORK_ATTACHMENT_ID
: il collegamento di rete nel formatoprojects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Esempio:
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 richiesta API
environments.patch
.In questa richiesta:
Per creare un nuovo collegamento di rete:
Nel parametro
updateMask
, specifica la mascheraconfig.node_config.network,config.node_config.subnetwork
.Nel corpo della richiesta, nei campi
network
esubnetwork
, specifica gli ID della rete VPC e della subnet.
Per utilizzare un collegamento di rete esistente:
Nel parametro
updateMask
, specifica la mascheraconfig.node_config.composer_network_attachment
.Nel corpo della richiesta, fornisci un valore per l'allegato di rete esistente nel formato
projects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Esempio (nuovo collegamento di rete):
// 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"
}
}
Esempio (collegamento di rete esistente):
// 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
I seguenti campi nel blocco node_config
specificano i parametri di connessione
della rete VPC:
network
: ID rete VPC.subnetwork
: ID subnet VPC.composer_network_attachment
: utilizza un collegamento di rete esistente.
Nuovo collegamento di rete
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
network = NETWORK_ID
subnetwork = SUBNETWORK_ID
}
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.NETWORK_ID
: ID rete VPCSUBNETWORK_ID
: ID subnet VPC
Esempio (nuovo collegamento di rete):
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
}
}
Collegamento di rete esistente
Di conseguenza, l'ambiente non utilizzerà più l'allegato. Per risolvere
questo problema, assicurati che Terraform ignori le modifiche al parametro producer_accept_lists
dell'allegato, come segue:
resource "google_compute_network_attachment" "NETWORK_ATTACHMENT_ID" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
Successivamente, specifica questo allegato per un ambiente. Puoi anche specificare un allegato non gestito in Terraform. Vedi l'esempio.
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id
}
# ... other configuration parameters
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.NETWORK_ATTACHMENT_ID
: l'ID del collegamento di rete.
Esempio (collegamento di rete esistente):
resource "google_compute_network_attachment" "example" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
# Attachment is managed in Terraform:
composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id
# Attachment is not managed in Terraform:
# composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
}
# ... other configuration parameters
}
}
Disattivare la connessione a una rete VPC
Console
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Vai alla scheda Configurazione ambiente.
Nella sezione Configurazione di rete, trova l'elemento Collegamento di rete e fai clic su Modifica.
Nella finestra di dialogo Allegato di rete, seleziona Nessuno e fai clic su Salva.
gcloud
Gli argomenti --disable-vpc-connectivity
disabilitano la connessione di rete VPC del tuo ambiente:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-vpc-connectivity
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome dell'ambienteLOCATION
: la regione in cui si trova l'ambiente
Esempio:
gcloud beta composer environments update example-environment \
--location us-central1 \
--disable-vpc-connectivity
API
Crea una richiesta API
environments.patch
.In questa richiesta:
Nel parametro
updateMask
, specifica la mascheraconfig.node_config.network,config.node_config.subnetwork
.Nel corpo della richiesta, specifica valori vuoti nei campi
network
esubnetwork
.
Esempio:
// 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
Non è possibile scollegare una rete VPC utilizzando Terraform. Puoi invece collegare un'altra rete VPC al suo posto o scollegare la rete utilizzando altri strumenti come Google Cloud CLI.
Passaggi successivi
- Modificare il tipo di networking dell'ambiente (IP privato o pubblico)
- Configurare l'accesso a internet durante l'installazione dei pacchetti PyPI