Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se explica cómo usar intervalos de IP públicas usadas de forma privada en su entorno de IP privada. Para obtener información general sobre cómo crear entornos de IP privada, consulta Configurar un entorno de IP privada.
Acerca de los intervalos de IP públicas usadas de forma privada en Cloud Composer
Google Kubernetes Engine requiere muchas direcciones IP para sus recursos: cada nodo, pod y servicio debe tener una dirección IP única. Esto puede provocar que los intervalos de IP privadas actuales no puedan alojar suficientes direcciones IP.
Los entornos de Cloud Composer pueden usar algunos intervalos de IP del espacio de direcciones que no es RFC 1918 sin necesidad de configuración adicional.
Si quieres usar más direcciones IP, tu entorno puede usar de forma privada determinados intervalos de direcciones IP públicas como intervalos de direcciones IP de subred internas para pods y servicios. Estos intervalos se denominan intervalos de IP públicas usadas de forma privada (PUPI).
Puedes usar de forma privada cualquier dirección IP pública, excepto determinados intervalos restringidos.
Antes de empezar
Solo puede especificar intervalos de IPs públicas al crear un entorno. No se pueden cambiar los intervalos de IP de un entorno ya creado.
Tu entorno debe ser un entorno de IP privada.
Solo puedes crear entornos con intervalos de PUPI mediante
gcloud
, Terraform y la API REST.Solo los pods y servicios de GKE pueden usar intervalos de IPs públicas. Otros componentes del entorno, como Cloud SQL, el servidor web y el plano de control de GKE, no pueden usar intervalos de IP públicas en un entorno de IP privadas.
El clúster de GKE se crea con la SNAT predeterminada inhabilitada.
Habilitar intervalos de PUPI al crear un entorno
gcloud
Para crear un entorno con intervalos de PUPI, usa el argumento --enable-privately-used-public-ips
al crear un entorno de IP privada. A continuación, especifica los intervalos de IP públicas de los pods y los servicios.
Intervalos de subred gestionados por GKE
Para crear intervalos de subredes gestionados por GKE, sigue estos pasos:
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr POD_IP_RANGE \
--services-ipv4-cidr SERVICES_IP_RANGE
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.LOCATION
con la región en la que se encuentra el entorno.POD_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como intervalo de direcciones IP secundario a la subred de tu entorno y se usa como intervalo de direcciones IP de los pods.SERVICES_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo es el intervalo de direcciones IP secundario de los servicios de la subred de tu entorno.
Ejemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr 10.3.192.0/20 \
--services-ipv4-cidr 172.16.194.0/23
Intervalos de subred gestionados por el usuario
Para crear intervalos gestionados por el usuario, sigue estos pasos:
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name POD_IP_RANGE_NAME \
--services-secondary-range-name SERVICES_IP_RANGE_NAME
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.LOCATION
con la región en la que se encuentra el entorno.POD_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Este intervalo lo usan los pods.SERVICES_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Los servicios usan este intervalo.
Ejemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name "public-1" \
--services-secondary-range-name "public-2"
API
Crea una solicitud de la API environments.create
. En el recurso Environment, especifica los parámetros de configuración de un entorno con intervalos de PUPI.
Intervalos de subred gestionados por GKE
Para crear intervalos de subredes gestionados por GKE, sigue estos pasos:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock":"POD_IP_RANGE",
"servicesIpv4CidrBlock":"SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.POD_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como intervalo de direcciones IP secundario a la subred de tu entorno y se usa como intervalo de direcciones IP de los pods.SERVICES_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo es el intervalo de direcciones IP secundario de los servicios de la subred de tu entorno.
Ejemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock":"10.3.192.0/20",
"servicesIpv4CidrBlock":"172.16.194.0/23"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Intervalos de subred gestionados por el usuario
Para crear intervalos gestionados por el usuario, sigue estos pasos:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterSecondaryRangeName":"POD_IP_RANGE",
"servicesSecondaryRangeName": "SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.POD_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Este intervalo lo usan los pods.SERVICES_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Los servicios usan este intervalo.
Ejemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterSecondaryRangeName":"public-1",
"servicesSecondaryRangeName": "public-2"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Terraform
Cuando creas un entorno, el campo enable_privately_used_public_ips
del bloque private_environment_config
permite usar intervalos de PUPI. También debe especificar intervalos de PUPI para pods y servicios.
Intervalos de subred gestionados por GKE
Para crear intervalos de subredes gestionados por GKE, sigue estos pasos:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
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
}
}
}
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.LOCATION
con la región en la que se encuentra el entorno.POD_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo se añade como intervalo de direcciones IP secundario a la subred de tu entorno y se usa como intervalo de direcciones IP de los pods.SERVICES_IP_RANGE
con un intervalo de direcciones IP en notación CIDR. Este intervalo es el intervalo de direcciones IP secundario de los servicios de la subred de tu entorno.
Ejemplo:
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 = [{
use_ip_aliases = true
// 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
}
}
}
Intervalos de subred gestionados por el usuario
Para crear intervalos gestionados por el usuario, sigue estos pasos:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
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
}
}
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.LOCATION
con la región en la que se encuentra el entorno.POD_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Este intervalo lo usan los pods.SERVICES_IP_RANGE_NAME
con el nombre de un intervalo de direcciones IP secundarias que ya exista en la subred especificada. Los servicios usan este intervalo.
Ejemplo:
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 = [{
use_ip_aliases = true
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
}
}
}