Activer l'agent de masquage d'adresses IP dans les environnements Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment activer l'agent de masquage d'adresses IP pour votre environnement.

À propos de l'agent IP Masquerade dans Cloud Composer

Cloud Composer est compatible avec l'agent de masquage d'adresses IP pour vos environnements.

Le masquage d'adresses IP est une forme de traduction d'adresses réseau (NAT, Network Address Translation) permettant de traduire plusieurs adresses IP en une seule. Cela permet à plusieurs clients d'accéder à une destination à partir d'une seule adresse IP.

Cloud Composer exécute vos charges de travail sur GKE. Pour fonctionner correctement, celui-ci nécessite des plages d'adresses IP pour les nœuds (VM), ainsi que pour les pods et les services GKE. Lorsque les DAG et les tâches Airflow communiquent avec d'autres services, ils utilisent des adresses IP de pods, qui doivent pouvoir être routées vers et depuis les destinations avec lesquelles les tâches interagissent.

Avec l'agent de masquage d'adresses IP, vous avez la possibilité de traduire les adresses IP des pods en adresses IP des nœuds, de sorte que les destinations et services ciblés à partir de DAG et de tâches Airflow ne reçoivent que les paquets provenant d'adresses IP de nœud au lieu d'adresses IP de nœud. Cela est utile dans les environnements qui ne doivent recevoir des paquets qu'en provenance d'adresses IP de nœud ou dans lesquels les plages d'adresses IP des pods ne peuvent pas être routées en dehors du cluster.

De plus, vous pouvez utiliser l'agent de masquage d'adresses IP pour enregistrer des plages réseau dans votre configuration réseau. Par exemple, vous pouvez utiliser une plage réseau distincte pour les pods du cluster de votre environnement et masquer ce trafic provenant de la plage d'adresses IP du nœud. De cette manière, vous enregistrez l'espace d'adressage IP dans une plage en utilisant des adresses IP d'une plage différente pour les pods du cluster de votre environnement.

Exemple :

  1. Vous utilisez la plage 10.0.0.0/8 pour les VM, et seule cette plage est autorisée par vos règles de pare-feu.

  2. Pour enregistrer des plages réseau, vous devez utiliser une plage différente (par exemple, 192.168.0.0/16) pour les pods du cluster de votre environnement.

  3. Pour pouvoir vous connecter à n'importe quel service à partir d'un pod (nœud de calcul Airflow), le masquage d'adresses IP est nécessaire. Sinon, le service reçoit le trafic de 192.168.0.0/16 et le supprime en raison d'une règle de pare-feu. Une fois l'agent de masquage d'adresses IP activé et configuré, le service reçoit les requêtes de 10.0.0.0/8, qui sont acceptées.

Avant de commencer

  • Il n'est pas possible d'activer l'agent de masquage d'adresses IP dans la console Google Cloud.

Activer l'agent IP Masquerade pour un environnement existant

Il n'est pas possible d'activer l'agent de masquage d'adresses IP pour un environnement existant.

Activer l'agent IP Masquerade lors de la création d'un environnement

Vous pouvez activer l'agent de masquage d'adresses IP lorsque vous créez un environnement.

Pour en savoir plus sur la création d'environnements Cloud Composer, consultez la page Créer un environnement.

Console

Il n'est pas possible d'activer l'agent de masquage d'adresses IP dans la console Google Cloud.

gcloud

Lorsque vous créez un environnement, l'argument --enable-ip-masq-agent active l'agent de masquage d'adresses IP. Vous devez également activer les alias d'adresses IP avec l'argument --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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Exemple :

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

Rédigez une requête API environments.create. Spécifiez la configuration dans la ressource 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
    }
  }
}

Remplacez :

  • PROJECT_ID par l'ID du projet.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • ENVIRONMENT_NAME par le nom de l'environnement.

Exemple :

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

Lorsque vous créez un environnement, le champ enable_ip_masq_agent du bloc node_config active l'agent de masquage d'adresses IP. Vous devez également activer l'alias IP avec le champ use_ip_aliases dans le bloc 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
    }
  }

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Exemple :

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

Configurer l'agent de masquage d'adresses IP

Pour en savoir plus sur l'utilisation et la configuration de l'agent de masquage d'adresses IP dans Cloud Composer 1, consultez la section Configurer un agent de masquage d'adresses IP dans les clusters standards.

Étapes suivantes