Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Cette page explique comment votre environnement peut accéder à un réseau VPC dans Cloud Composer 3, fournit des instructions pour connecter un environnement à un réseau VPC et explique comment désactiver une connexion précédemment configurée.
Si vous souhaitez activer ou désactiver l'accès à Internet pour les composants Airflow de votre environnement, consultez la section Modifier le type de réseau de l'environnement (adresse IP privée ou publique).
Si vous souhaitez désactiver ou activer l'accès à Internet uniquement lors de l'installation de packages PyPI, consultez la section Configurer l'accès à Internet lors de l'installation de packages PyPI.
Si vous souhaitez configurer la mise en réseau VPC partagé, consultez la section Configurer un VPC partagé pour en savoir plus sur la configuration des projets et des autorisations.
À propos de l'accès au réseau VPC
Dans Cloud Composer 3, vous pouvez activer l'accès à un réseau VPC pour un environnement.
Si vous activez l'accès à un réseau VPC pour un environnement:
Les composants Airflow de votre environnement peuvent accéder aux points de terminaison de réseau privé de votre réseau VPC. Par exemple, votre code DAG peut accéder aux ressources situées dans votre réseau VPC via une connexion Airflow configurée.
Si votre environnement utilise la mise en réseau par adresse IP privée, tout le trafic interne est acheminé vers votre réseau VPC, à l'exception du trafic vers les API, services et domaines Google qui sont disponibles pour les environnements d'adresse IP privée via l'accès privé à Google.
Selon la configuration de votre réseau VPC, un environnement d'adresse IP privée peut accéder à Internet via votre réseau VPC.
Les zones DNS privées définies dans votre réseau VPC sont automatiquement disponibles pour les composants Airflow de votre environnement.
L'environnement réserve deux adresses IP dans votre sous-réseau VPC.
Cloud Composer utilise un rattachement réseau pour connecter votre environnement à un réseau VPC:
Si vous spécifiez un réseau et un sous-réseau VPC, Cloud Composer crée une nouvelle association réseau dans votre projet. Ce rattachement est supprimé une fois que vous avez supprimé un environnement, désactivé la connexion à un réseau VPC ou écrasé les paramètres de connexion VPC.
Si vous spécifiez un rattachement réseau existant, il doit se trouver dans le même projet que l'environnement. Ce rattachement n'est pas supprimé après la suppression d'un environnement, la désactivation de la connexion ou le remplacement des paramètres de connexion VPC.
Dans la mise en réseau VPC partagée:
Assurez-vous d'avoir configuré la mise en réseau VPC partagé pour Cloud Composer. Pour en savoir plus sur la configuration des projets et des autorisations pour Cloud Composer, consultez la section Configurer un VPC partagé.
Une fois la mise en réseau VPC partagée configurée, vous pouvez connecter votre environnement à un réseau VPC à partir du projet hôte. Si vous utilisez un rattachement réseau existant, il doit être créé dans le projet de service (où se trouve l'environnement) et associé à un réseau VPC partagé.
À propos de la plage d'adresses IP internes de l'environnement
Les environnements Cloud Composer 3 nécessitent plusieurs adresses IP pour leurs composants exécutés dans le projet locataire, tels que le cluster de votre environnement et le proxy Cloud SQL. Ces adresses IP sont extraites de la plage d'adresses IP internes de l'environnement.
La plage d'adresses IP internes par défaut est
100.64.128.0/20
.Vous pouvez spécifier une plage d'adresses IP interne différente lorsque vous créez un environnement. Cette plage doit utiliser un masque
/20
.Vous ne pouvez pas modifier la plage d'adresses IP interne d'un environnement existant.
La plage d'adresses IP interne interagit avec votre réseau VPC de la manière suivante:
La plage d'adresses IP interne ne doit pas entrer en conflit avec le sous-réseau VPC auquel l'environnement Cloud Composer est connecté. Il n'est pas possible d'activer une connexion avec un sous-réseau VPC qui chevauche la plage d'adresses IP interne.
Si la plage d'adresses IP internes d'un environnement chevauche les plages de votre réseau VPC, les points de terminaison de votre réseau VPC dont les adresses IP se chevauchent ne sont pas accessibles depuis l'environnement.
Par exemple, si la plage interne est
100.64.128.0/20
, toute requête envoyée au point de terminaison100.64.128.1
de votre réseau VPC échoue, car la requête ne quitte pas le projet du locataire.La plage d'adresses IP internes n'est pas réservée. Vous pouvez utiliser la même plage d'adresses IP interne pour plusieurs environnements sans configuration supplémentaire, car les réseaux VPC internes utilisés par différents environnements sont distincts.
Vous pouvez utiliser les adresses IP de la plage interne à d'autres fins, à condition que les DAG et les tâches de votre environnement ne leur envoient pas de requêtes.
Se connecter à un réseau VPC
Console
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans la section Configuration réseau, recherchez l'élément Pièce jointe réseau, puis cliquez sur Modifier.
Dans la boîte de dialogue Network attachment (Connexion réseau) :
Pour créer un rattachement de réseau, dans la liste Rattachement de réseau, sélectionnez Créer un rattachement de réseau. Dans les listes Réseau et Sous-réseau, sélectionnez un réseau VPC et un sous-réseau.
Pour utiliser un rattachement de réseau existant, sélectionnez-le dans la liste Rattachement de réseau.
Cliquez sur Enregistrer.
gcloud
Les arguments de la Google Cloud CLI suivants spécifient les paramètres de connexion au réseau VPC:
--network
: ID du réseau VPC.--subnetwork
: ID du sous-réseau VPC.--network-attachment
: utilisez plutôt un rattachement réseau existant.
Nouveau rattachement de réseau
Pour connecter votre environnement à un réseau VPC via une nouvelle association de réseau, exécutez la commande Google Cloud CLI suivante:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de l'environnementLOCATION
: région où se trouve l'environnementNETWORK_ID
: ID du réseau VPCSUBNETWORK_ID
: ID du sous-réseau VPC
Exemple :
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
Rattachement de réseau existant
Pour connecter votre environnement à un réseau VPC via une nouvelle association de réseau, exécutez la commande Google Cloud CLI suivante:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--network-attachment NETWORK_ATTACHMENT_ID
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de l'environnementLOCATION
: région où se trouve l'environnementNETWORK_ATTACHMENT_ID
: rattachement de réseau au formatprojects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Exemple :
gcloud beta composer environments update example-environment \
--location us-central1 \
--network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
API
Créez une requête API
environments.patch
.Dans cette requête :
Pour créer un rattachement de réseau:
Dans le paramètre
updateMask
, spécifiez le masqueconfig.node_config.network,config.node_config.subnetwork
.Dans le corps de la requête, dans les champs
network
etsubnetwork
, spécifiez les ID de votre réseau et de votre sous-réseau VPC.
Pour utiliser un rattachement réseau existant:
Dans le paramètre
updateMask
, spécifiez le masqueconfig.node_config.composer_network_attachment
.Dans le corps de la requête, fournissez une valeur pour l'association réseau existante au format
projects/{project}/regions/{region}/networkAttachments/{networkAttachment}
.
Exemple (nouveau rattachement de réseau):
// 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"
}
}
Exemple (rattachement de réseau existant):
// 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
Les champs suivants du bloc node_config
spécifient les paramètres de connexion au réseau VPC:
network
: ID du réseau VPC.subnetwork
: ID du sous-réseau VPC.composer_network_attachment
: utilisez plutôt un rattachement réseau existant.
Nouveau rattachement de réseau
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
network = NETWORK_ID
subnetwork = SUBNETWORK_ID
}
}
}
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de votre environnementLOCATION
: région où se trouve l'environnement.NETWORK_ID
: ID du réseau VPCSUBNETWORK_ID
: ID du sous-réseau VPC
Exemple (nouveau rattachement de réseau):
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
}
}
Rattachement de réseau existant
Par conséquent, l'environnement n'utilisera plus la pièce jointe. Pour résoudre ce problème, assurez-vous que Terraform ignore les modifications apportées au paramètre producer_accept_lists
de l'attachement, comme suit:
resource "google_compute_network_attachment" "NETWORK_ATTACHMENT_ID" {
lifecycle {
ignore_changes = [producer_accept_lists]
}
# ... other configuration parameters
}
Spécifiez ensuite cette pièce jointe pour un environnement. Vous pouvez également spécifier une pièce jointe qui n'est pas gérée dans Terraform. Consultez l'exemple.
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
}
}
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de votre environnementLOCATION
: région où se trouve l'environnement.NETWORK_ATTACHMENT_ID
: ID de rattachement réseau.
Exemple (rattachement de réseau existant):
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
}
}
Désactiver la connexion à un réseau VPC
Console
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans la section Configuration réseau, recherchez l'élément Pièce jointe réseau, puis cliquez sur Modifier.
Dans la boîte de dialogue Rattachement de réseau, sélectionnez Aucune, puis cliquez sur Enregistrer.
gcloud
Les arguments --disable-vpc-connectivity
désactivent la connexion réseau VPC de votre environnement:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-vpc-connectivity
Remplacez les éléments suivants :
ENVIRONMENT_NAME
: nom de l'environnementLOCATION
: région où se trouve l'environnement
Exemple :
gcloud beta composer environments update example-environment \
--location us-central1 \
--disable-vpc-connectivity
API
Créez une requête API
environments.patch
.Dans cette requête :
Dans le paramètre
updateMask
, spécifiez le masqueconfig.node_config.network,config.node_config.subnetwork
.Dans le corps de la requête, dans les champs
network
etsubnetwork
, spécifiez des valeurs vides.
Exemple :
// 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
Il n'est pas possible de dissocier un réseau VPC à l'aide de Terraform. Vous pouvez plutôt associer un autre réseau VPC à la place ou dissocier le réseau à l'aide d'autres outils, comme la CLI Google Cloud.
Étape suivante
- Modifier le type de réseau de l'environnement (adresse IP privée ou publique)
- Configurer l'accès à Internet lors de l'installation de packages PyPI