Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird erläutert, wie Ihre Umgebung in Cloud Composer 3 auf ein VPC-Netzwerk zugreifen kann. Außerdem finden Sie eine Anleitung zum Verbinden einer Umgebung mit einem VPC-Netzwerk und zum Deaktivieren einer zuvor konfigurierten Verbindung.
Informationen zum Aktivieren oder Deaktivieren des Internetzugriffs für die Airflow-Komponenten Ihrer Umgebung finden Sie unter Netzwerktyp der Umgebung (private oder öffentliche IP-Adresse) ändern.
Wenn Sie den Internetzugriff nur bei der Installation von PyPI-Paketen deaktivieren oder aktivieren möchten, lesen Sie den Hilfeartikel Internetzugriff bei der Installation von PyPI-Paketen konfigurieren.
Wenn Sie ein freigegebenes VPC-Netzwerk konfigurieren möchten, finden Sie unter Freigegebene VPC konfigurieren Informationen zum Konfigurieren von Projekten und Berechtigungen.
VPC-Netzwerkzugriff
In Cloud Composer 3 können Sie den Zugriff auf ein VPC-Netzwerk für eine Umgebung aktivieren.
Wenn Sie den Zugriff auf ein VPC-Netzwerk für eine Umgebung aktivieren, gilt Folgendes:
Airflow-Komponenten Ihrer Umgebung können auf private Netzwerkendpunkte in Ihrem VPC-Netzwerk zugreifen. So kann Ihr DAG-Code beispielsweise über eine konfigurierte Airflow-Verbindung auf Ressourcen in Ihrem VPC-Netzwerk zugreifen.
Wenn in Ihrer Umgebung Private IP-Netzwerke verwendet werden, wird der gesamte interne Traffic an Ihr VPC-Netzwerk weitergeleitet, mit Ausnahme des Traffics zu Google APIs, ‑Diensten und ‑Domains, die für Private IP-Umgebungen über den privaten Google-Zugriff verfügbar sind.
Je nach Konfiguration Ihres VPC-Netzwerks kann eine Umgebung mit privaten IP-Adressen über Ihr VPC-Netzwerk auf das Internet zugreifen.
In Ihrem VPC-Netzwerk definierte private DNS-Zonen sind automatisch für die Airflow-Komponenten Ihrer Umgebung verfügbar.
Für die Umgebung werden zwei IP-Adressen in Ihrem VPC-Subnetzwerk reserviert.
Cloud Composer verwendet einen Netzwerk-Anhang, um Ihre Umgebung mit einem VPC-Netzwerk zu verbinden:
Wenn Sie ein VPC-Netzwerk und ein Subnetz angeben, erstellt Cloud Composer eine neue Netzwerkverbindung in Ihrem Projekt. Dieser Anhang wird gelöscht, nachdem Sie eine Umgebung gelöscht, die Verbindung zu einem VPC-Netzwerk deaktiviert oder die VPC-Verbindungsparameter überschrieben haben.
Wenn Sie einen vorhandenen Netzwerk-Anschluss angeben, muss er sich im selben Projekt wie die Umgebung befinden. Dieser Anhang wird nicht gelöscht, wenn Sie eine Umgebung löschen, die Verbindung deaktivieren oder die VPC-Verbindungsparameter überschreiben.
Bei freigegebenen VPC-Netzwerken:
Sie müssen das freigegebene VPC-Netzwerk für Cloud Composer konfiguriert haben. Informationen zum Konfigurieren von Projekten und Berechtigungen für Cloud Composer finden Sie unter Freigegebene VPC konfigurieren.
Nachdem das freigegebene VPC-Netzwerk konfiguriert wurde, können Sie Ihre Umgebung über das Hostprojekt mit einem VPC-Netzwerk verbinden. Wenn Sie einen vorhandenen Netzwerkanhang verwenden, muss er im Dienstprojekt (in dem sich die Umgebung befindet) erstellt und an ein freigegebenes VPC-Netzwerk angehängt werden.
Interner IP-Bereich der Umgebung
Cloud Composer 3-Umgebungen erfordern mehrere IP-Adressen für die Komponenten, die im Mandantenprojekt ausgeführt werden, z. B. den Cluster der Umgebung und den Cloud SQL-Proxy. Diese IP-Adressen stammen aus dem internen IP-Adressbereich der Umgebung.
Der Standardbereich für interne IP-Adressen ist
100.64.128.0/20
.Sie können beim Erstellen einer Umgebung einen anderen internen IP-Bereich angeben. Für diesen Bereich muss eine
/20
-Maske verwendet werden.Sie können den internen IP-Bereich einer vorhandenen Umgebung nicht ändern.
Der interne IP-Bereich interagiert auf folgende Weise mit Ihrem VPC-Netzwerk:
Der interne IP-Bereich darf nicht mit dem VPC-Subnetzwerk in Konflikt stehen, mit dem die Cloud Composer-Umgebung verbunden ist. Es ist nicht möglich, eine Verbindung mit einem VPC-Subnetz zu aktivieren, das sich mit dem internen IP-Bereich überschneidet.
Wenn sich der interne IP-Bereich einer Umgebung mit den Bereichen Ihres VPC-Netzwerks überschneidet, können Endpunkte aus Ihrem VPC-Netzwerk mit überschneidenden IP-Adressen nicht von der Umgebung aus erreicht werden.
Wenn der interne Bereich beispielsweise
100.64.128.0/20
ist, schlägt jede Anfrage an den100.64.128.1
-Endpunkt in Ihrem VPC-Netzwerk fehl, da die Anfrage das Mandantenprojekt nicht verlässt.Der interne IP-Bereich ist nicht reserviert. Sie können denselben internen IP-Bereich für mehrere Umgebungen ohne zusätzliche Einrichtung verwenden, da die internen VPC-Netzwerke, die von verschiedenen Umgebungen verwendet werden, getrennt sind.
Sie können die IP-Adressen des internen Bereichs für andere Zwecke verwenden, solange DAGs und Aufgaben in Ihrer Umgebung keine Anfragen an sie senden.
Verbindung zu einem VPC-Netzwerk herstellen
Console
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Suchen Sie im Bereich Netzwerkkonfiguration nach dem Element Netzwerkansatz und klicken Sie auf Bearbeiten.
Gehen Sie im Dialogfeld Netzwerkanwendung so vor:
Wenn Sie einen neuen Netzwerkanhang erstellen möchten, wählen Sie in der Liste Netzwerkanhang die Option Neuen Netzwerkanhang erstellen aus. Wählen Sie in den Listen Netzwerk und Subnetzwerk ein VPC-Netzwerk und ein Subnetzwerk aus.
Wenn Sie einen vorhandenen Netzwerkanhang verwenden möchten, wählen Sie in der Liste Netzwerkanhang einen entsprechenden Eintrag aus.
Klicken Sie auf Speichern.
gcloud
Mit den folgenden Google Cloud CLI-Argumenten werden VPC-Netzwerkverbindungsparameter angegeben:
--network
: VPC-Netzwerk-ID.--subnetwork
: VPC-Subnetz-ID.--network-attachment
: Verwenden Sie stattdessen einen vorhandenen Netzwerkanhang.
Neuer Netzwerkanhang
Führen Sie den folgenden Google Cloud CLI-Befehl aus, um Ihre Umgebung über eine neue Netzwerkverbindung mit einem VPC-Netzwerk zu verbinden:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name der UmgebungLOCATION
: die Region, in der sich die Umgebung befindetNETWORK_ID
: VPC-Netzwerk-IDSUBNETWORK_ID
: VPC-Subnetzwerk-ID
Beispiel:
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
Vorhandener Netzwerkanhang
Führen Sie den folgenden Google Cloud CLI-Befehl aus, um Ihre Umgebung über eine neue Netzwerkverbindung mit einem VPC-Netzwerk zu verbinden:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network-attachment NETWORK_ATTACHMENT_ID
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name der UmgebungLOCATION
: die Region, in der sich die Umgebung befindetNETWORK_ATTACHMENT_ID
: den Netzwerkanhang improjects/{project}/regions/{region}/networkAttachments/{networkAttachment}
-Format.
Beispiel:
gcloud beta composer environments update example-environment \
--location us-central1 \
--network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
API
Erstellen Sie eine
environments.patch
-API-Anfrage.In dieser Anfrage:
So erstellen Sie einen neuen Netzwerkanhang:
Geben Sie im Parameter
updateMask
die Maskeconfig.node_config.network,config.node_config.subnetwork
an.Geben Sie im Anfragetext in den Feldern
network
undsubnetwork
die IDs Ihres VPC-Netzwerks und Subnetzwerks an.
So verwenden Sie einen vorhandenen Netzwerkansatz:
Geben Sie im Parameter
updateMask
die Maskeconfig.node_config.composer_network_attachment
an.Geben Sie im Anfragetext einen Wert für den vorhandenen Netzwerk-Anhang im Format
projects/{project}/regions/{region}/networkAttachments/{networkAttachment}
an.
Beispiel (neuer Netzwerkanhang):
// 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"
}
}
Beispiel (vorhandener Netzwerkanhang):
// 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
Die folgenden Felder im Block node_config
geben VPC-Netzwerkverbindungsparameter an:
network
: VPC-Netzwerk-ID.subnetwork
: VPC-Subnetz-ID.composer_network_attachment
: Verwenden Sie stattdessen einen vorhandenen Netzwerkanhang.
Neuer Netzwerkanhang
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
network = NETWORK_ID
subnetwork = SUBNETWORK_ID
}
}
}
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.NETWORK_ID
: VPC-Netzwerk-IDSUBNETWORK_ID
: VPC-Subnetzwerk-ID
Beispiel (neuer Netzwerkanhang):
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
}
}
Vorhandener Netzwerkanhang
Daher wird der Anhang in der Umgebung nicht mehr verwendet. Achten Sie darauf, dass Terraform Änderungen am producer_accept_lists
-Parameter des Anhangs ignoriert. Gehen Sie dazu so vor:
resource "google_compute_network_attachment" "NETWORK_ATTACHMENT_ID" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
Geben Sie diesen Anhang anschließend für eine Umgebung an. Sie können auch einen Anhang angeben, der nicht in Terraform verwaltet wird. Weitere Informationen finden Sie im Beispiel.
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
}
}
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.NETWORK_ATTACHMENT_ID
: die ID des Netzwerkanhangs.
Beispiel (vorhandener Netzwerkanhang):
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
}
}
Verbindung zu einem VPC-Netzwerk deaktivieren
Console
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Suchen Sie im Bereich Netzwerkkonfiguration nach dem Element Netzwerkansatz und klicken Sie auf Bearbeiten.
Wählen Sie im Dialogfeld Netzwerkanhänge die Option Keine aus und klicken Sie auf Speichern.
gcloud
Mit den --disable-vpc-connectivity
-Argumenten wird die VPC-Netzwerkverbindung Ihrer Umgebung deaktiviert:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-vpc-connectivity
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name der UmgebungLOCATION
: die Region, in der sich die Umgebung befindet
Beispiel:
gcloud beta composer environments update example-environment \
--location us-central1 \
--disable-vpc-connectivity
API
Erstellen Sie eine
environments.patch
-API-Anfrage.In dieser Anfrage:
Geben Sie im Parameter
updateMask
die Maskeconfig.node_config.network,config.node_config.subnetwork
an.Geben Sie im Anfragetext in den Feldern
network
undsubnetwork
leere Werte an.
Beispiel:
// 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
Es ist nicht möglich, ein VPC-Netzwerk mit Terraform zu trennen. Stattdessen können Sie anstelle des VPC-Netzwerks ein anderes anhängen oder das Netzwerk mit anderen Tools wie der Google Cloud CLI trennen.
Nächste Schritte
- Netzwerktyp der Umgebung ändern (private oder öffentliche IP)
- Internetzugriff bei der Installation von PyPI-Paketen konfigurieren