Habilitar el agente de enmascaramiento de IP en entornos de Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se describe cómo habilitar el agente de enmascaramiento de IP en tu entorno.

Acerca del agente de enmascaramiento de IP en Cloud Composer

Cloud Composer admite el agente de enmascaramiento de IP en tus entornos.

El enmascaramiento de IP es una forma de traducción de dirección de red (NAT) que sirve para realizar traducciones de direcciones IP de muchos a uno. Esto permite que varios clientes accedan a un destino desde una sola dirección IP.

Cloud Composer ejecuta tus cargas de trabajo en GKE. Para que funcione correctamente, requiere intervalos de IP para los nodos (máquinas virtuales), así como pods y servicios de GKE. Cuando los DAGs y las tareas de Airflow se comunican con otros servicios, utilizan IPs de pods. Estos intervalos de IPs de pods deben poder enrutarse hacia y desde cualquier destino con el que interactúen las tareas.

Con el agente IP Masquerade, tienes la opción de traducir las direcciones IP de los pods a direcciones IP de los nodos, de forma que los destinos y los servicios a los que se dirigen los DAGs y las tareas de Airflow solo reciban paquetes de las direcciones IP de los nodos en lugar de las direcciones IP de los pods. Esto resulta útil en entornos en los que solo se espera recibir paquetes de direcciones IP de nodos o en los que los intervalos de IP de pods no se pueden enrutar fuera del clúster.

Además, puedes usar el agente de enmascaramiento de IP para guardar intervalos de red en tu configuración de red. Por ejemplo, puedes usar un intervalo de red independiente para los pods del clúster de tu entorno y enmascarar este tráfico para que parezca que procede del intervalo de direcciones IP del nodo. De esta forma, ahorras espacio de direcciones IP en un intervalo usando direcciones IP de otro intervalo para los pods del clúster de tu entorno.

Por ejemplo:

  1. Usas el intervalo 10.0.0.0/8 para las VMs y solo este intervalo está permitido por tus reglas de cortafuegos.

  2. Para guardar los intervalos de red, utiliza otro intervalo (por ejemplo, 192.168.0.0/16) para los pods del clúster de tu entorno.

  3. Para poder conectarse a cualquier servicio desde un pod (trabajador de Airflow), es necesario el enmascaramiento de IP. De lo contrario, el servicio recibe tráfico de 192.168.0.0/16 y lo rechaza debido a una regla de cortafuegos. Con el agente de enmascaramiento de IP habilitado y configurado, el servicio recibe solicitudes de 10.0.0.0/8, que se aceptan.

Antes de empezar

  • No es posible habilitar el agente de enmascaramiento de IP en la consola de Google Cloud .

Habilitar el agente de enmascaramiento de IP en un entorno

No es posible habilitar el agente de enmascaramiento de IP en un entorno que ya existe.

Habilitar el agente de enmascaramiento de IP al crear un entorno

Puedes habilitar el agente de enmascaramiento de IP al crear un entorno.

Para obtener más información sobre cómo crear entornos de Cloud Composer, consulta el artículo Crear un entorno.

Consola

No es posible habilitar el agente de enmascaramiento de IP en la consola de Google Cloud .

gcloud

Cuando creas un entorno, el argumento --enable-ip-masq-agent habilita el agente de enmascaramiento de IP. También debe habilitar el alias de IP con el argumento --enable-ip-alias.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --enable-ip-alias \
    --enable-ip-masq-agent

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el 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-ip-masq-agent

API

Crea una solicitud de la API environments.create. Especifica la configuración en el recurso Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.20.12-airflow-1.10.15"
    },
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
      },
      "enableIpMasqAgent": true
    }
  }
}

Sustituye:

  • PROJECT_ID con el ID del proyecto.
  • LOCATION con la región en la que se encuentra el entorno.
  • ENVIRONMENT_NAME con el nombre del entorno.

Ejemplo:

  // POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

  {
    "name": "projects/example-project/locations/us-central1/environments/example-environment",
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-1.20.12-airflow-1.10.15"
      },
      "nodeConfig": {
        "ipAllocationPolicy": {
          "useIpAliases": true,
        },
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

Cuando creas un entorno, el campo enable_ip_masq_agent del bloque node_config habilita el agente de enmascaramiento de IP. También debe habilitar el alias de IP con el campo use_ip_aliases en el bloque ip_allocation_policy.

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
    node_config {
      ip_allocation_policy = [{
        use_ip_aliases = true
        // Other networking configuration
      }]
      enable_ip_masq_agent = true
    }
  }

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.

Ejemplo:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
    node_config {
      ip_allocation_policy = [{
        use_ip_aliases = true
        // Other networking configuration
      }]
      enable_ip_masq_agent = true
    }
  }
}

Configurar el agente de enmascaramiento de IP

Para obtener más información sobre cómo usar y configurar el agente de enmascaramiento de IP en Cloud Composer 1, consulta Configurar un agente de enmascaramiento de IP en clústeres estándar.

Siguientes pasos