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

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

Información acerca del agente de enmascaramiento de IP en Cloud Composer

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

El enmascaramiento de IP es una forma de traducción de direcciones de red (NAT) que se usa para realizar traducciones de direcciones IP de varios 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. A fin de que funcione de forma correcta, requiere rangos de IP para nodos (VM), además de pods y servicios de GKE. Cuando los DAG y las tareas de Airflow se comunican con otros servicios, usan IP de Pods. Estos rangos de IP de Pods deben poder enrutarse desde y hacia cualquier destino con el que interactúen las tareas.

Con el agente de enmascaramiento de IP, tienes la opción de traducir las direcciones IP del Pod a las direcciones IP del nodo, de modo que los destinos y servicios orientados desde los DAG y las tareas de Airflow solo reciban paquetes de direcciones IP de nodo en lugar de direcciones IP de pods. Esto es útil en entornos en los que se espera recibir solo paquetes de direcciones IP de nodo o en las que los rangos de IP de pods no se pueden enrutar fuera del clúster.

Además, puedes usar el agente de enmascaramiento de IP para guardar rangos de red en la configuración de red. Por ejemplo, puedes usar un rango de red independiente para pods dentro del clúster de tu entorno y enmascarar este tráfico como si proviniera del rango de direcciones IP del nodo. De esta manera, ahorrarás espacio para direcciones IP en un rango mediante las direcciones IP de un rango diferente para los pods en el clúster de tu entorno.

Por ejemplo:

  1. Debes usar el rango 10.0.0.0/8 para las VM, y tus reglas de firewall solo permiten este rango.

  2. Para guardar rangos de red, debes usar un rango diferente (por ejemplo, 192.168.0.0/16) en los pods del clúster de tu entorno.

  3. Para poder conectarse a cualquier servicio desde un pod (trabajador de Airflow), se necesita un enmascaramiento de IP. De lo contrario, el servicio recibe tráfico de 192.168.0.0/16 y lo descarta debido a una regla de firewall. 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 comenzar

  • No se puede habilitar el agente de enmascaramiento de IP en la consola de Google Cloud.

Habilitar el agente de enmascaramiento de IP para un entorno existente

No es posible habilitar el agente de enmascaramiento de IP para un entorno existente.

Habilita el agente de enmascaramiento de IP cuando crees un entorno

Puedes habilitar el agente de enmascaramiento de IP cuando creas un entorno.

Para obtener más información sobre la creación de entornos de Cloud Composer, consulta Crea un entorno.

Console

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 debes 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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por 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

Realiza una solicitud a la API de 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
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID por el ID del proyecto.
  • LOCATION por la región en la que se encuentra el entorno.
  • ENVIRONMENT_NAME por 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 en el bloque node_config habilita el agente de enmascaramiento de IP. También debes 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
    }
  }

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por 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
    }
  }
}

Configura el agente de enmascaramiento de IP

Para obtener más información sobre el uso y la configuración del agente de enmascaramiento de IP en Cloud Composer 1, consulta Configura un agente de enmascaramiento de IP en clústeres de Standard.

¿Qué sigue?