Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment utiliser des plages d'adresses IP publiques utilisées en mode privé dans votre environnement d'adresse IP privée. Pour obtenir des informations générales sur la création d'environnements d'adresse IP privée, consultez la page Configurer un environnement d'adresse IP privée.
À propos des plages d'adresses IP publiques utilisées en mode privé dans Cloud Composer
Google Kubernetes Engine nécessite de nombreuses adresses IP pour ses ressources : chaque nœud, pod et service doit posséder une adresse IP unique. Cela peut entraîner une situation dans laquelle les plages d'adresses IP privées existantes ne peuvent pas gérer suffisamment d'adresses IP.
Les environnements Cloud Composer peuvent utiliser certaines plages d'adresses IP de l'espace d'adressage non-RFC 1918 sans configuration supplémentaire.
Si vous souhaitez utiliser davantage d'adresses IP, votre environnement peut utiliser en mode privé certaines plages d'adresses IP publiques en tant que plages d'adresses IP de sous-réseau internes pour les pods et les services. Ces plages sont appelées plages d'adresses IP publiques utilisées en mode privé (PUPI).
Vous pouvez utiliser n'importe quelle adresse IP publique en mode privé, à l'exception de certaines plages restreintes.
Avant de commencer
Vous ne pouvez spécifier des plages d'adresses IP publiques que lorsque vous créez un environnement. Il n'est pas possible de modifier les plages d'adresses IP d'un environnement existant.
Votre environnement doit être un environnement d'adresse IP privée.
Vous pouvez créer des environnements avec des plages PUPI uniquement à l'aide de
gcloud
, de Terraform et de l'API REST.Seuls les pods et les services GKE peuvent utiliser des plages d'adresses IP publiques. D'autres composants d'environnement tels que Cloud SQL, le serveur Web et le plan de contrôle GKE ne peuvent pas utiliser des plages d'adresses IP publiques dans un environnement d'adresse IP privée.
Le cluster GKE est créé avec la configuration SNAT par défaut désactivée.
Activer les plages PUPI lors de la création d'un environnement
gcloud
Pour créer un environnement avec des plages PUPI, utilisez l'argument --enable-privately-used-public-ips
lorsque vous créez un environnement d'adresse IP privée. Spécifiez ensuite des plages d'adresses IP publiques pour les pods et les services.
Plages de sous-réseaux gérées par GKE
Pour créer des plages de sous-réseaux gérées par GKE :
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr POD_IP_RANGE \
--services-ipv4-cidr SERVICES_IP_RANGE
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.LOCATION
par la région dans laquelle se trouve l'environnement.POD_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que plage d'adresses IP secondaire au sous-réseau de votre environnement et sert de plage d'adresses IP pour les pods.SERVICES_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage correspond à la plage d'adresses IP secondaire des services situés dans le sous-réseau de votre environnement.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr 10.3.192.0/20 \
--services-ipv4-cidr 172.16.194.0/23
Plages de sous-réseaux gérées par l'utilisateur
Pour créer des plages gérées par l'utilisateur :
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name POD_IP_RANGE_NAME \
--services-secondary-range-name SERVICES_IP_RANGE_NAME
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.LOCATION
par la région où se trouve l'environnement.POD_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les pods.SERVICES_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les services.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name "public-1" \
--services-secondary-range-name "public-2"
API
Rédigez une requête API environments.create
. Dans la ressource Environnement, spécifiez les paramètres de configuration d'un environnement avec des plages PUPI.
Plages de sous-réseaux gérées par GKE
Pour créer des plages de sous-réseaux gérées par GKE :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"clusterIpv4CidrBlock":"POD_IP_RANGE",
"servicesIpv4CidrBlock":"SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.POD_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que plage d'adresses IP secondaire au sous-réseau de votre environnement et sert de plage d'adresses IP pour les pods.SERVICES_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage correspond à la plage d'adresses IP secondaire des services situés dans le sous-réseau de votre environnement.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"clusterIpv4CidrBlock":"10.3.192.0/20",
"servicesIpv4CidrBlock":"172.16.194.0/23"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Plages de sous-réseaux gérées par l'utilisateur
Pour créer des plages gérées par l'utilisateur :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"clusterSecondaryRangeName":"POD_IP_RANGE",
"servicesSecondaryRangeName": "SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.POD_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les pods.SERVICES_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les services.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"clusterSecondaryRangeName":"public-1",
"servicesSecondaryRangeName": "public-2"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Terraform
Lorsque vous créez un environnement, le champ enable_privately_used_public_ips
du bloc private_environment_config
permet l'utilisation de plages PUPI. Vous devez également spécifier des plages PUPI pour les pods et les services.
Plages de sous-réseaux gérées par GKE
Pour créer des plages de sous-réseaux gérées par GKE :
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
cluster_ipv4_cidr_block = "POD_IP_RANGE"
services_ipv4_cidr_block = "SERVICES_IP_RANGE"
cluster_secondary_range_name = null
services_secondary_range_name = null
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private ip environment parameters
}
}
}
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.LOCATION
par la région dans laquelle se trouve l'environnement.POD_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que plage d'adresses IP secondaire au sous-réseau de votre environnement et sert de plage d'adresses IP pour les pods.SERVICES_IP_RANGE
par une plage d'adresses IP au format CIDR. Cette plage correspond à la plage d'adresses IP secondaire des services situés dans le sous-réseau de votre environnement.
Exemple :
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
// Specify your network and subnetwork
network = google_compute_network.example_network.id
subnetwork = google_compute_subnetwork.example_subnet.id
ip_allocation_policy = [{
// Specify PUPI addresses
cluster_ipv4_cidr_block = "10.3.192.0/20"
services_ipv4_cidr_block = "172.16.194.0/23"
cluster_secondary_range_name = null
services_secondary_range_name = null
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private environment parameters
}
}
}
Plages de sous-réseaux gérées par l'utilisateur
Pour créer des plages gérées par l'utilisateur :
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
cluster_ipv4_cidr_block = null
services_ipv4_cidr_block = null
cluster_secondary_range_name = POD_IP_RANGE_NAME
services_secondary_range_name = SERVICES_IP_RANGE_NAME
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private ip environment parameters
}
}
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.LOCATION
par la région dans laquelle se trouve l'environnement.POD_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les pods.SERVICES_IP_RANGE_NAME
par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les services.
Exemple :
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
// Specify your network and subnetwork
network = google_compute_network.example_network.id
subnetwork = google_compute_subnetwork.example_subnet.id
ip_allocation_policy = [{
cluster_ipv4_cidr_block = null
services_ipv4_cidr_block = null
// Specify existing ranges
cluster_secondary_range_name = "public-1"
services_secondary_range_name = "public-2"
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private environment parameters
}
}
}
Étape suivante
- Configurer des environnements d'adresse IP privée.
- Créer des environnements
- À propos des environnements d'adresse IP privée