Abilitare l'agente di mascheramento IP negli ambienti Managed Airflow

Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (legacy 1ª gen.)

Questa pagina descrive come attivare l'agente di IP masquerading per il tuo ambiente.

Informazioni sull'agente di IP masquerading in Managed Airflow

Managed Airflow supporta l'agente IP Masquerade per i tuoi ambienti.

L'IP masquerading è una forma di Network Address Translation (NAT) utilizzata per eseguire traduzioni molti-a-uno degli indirizzi IP. In questo modo, più client possono accedere a una destinazione da un singolo indirizzo IP.

Managed Airflow esegue i tuoi workload su GKE. Per un funzionamento corretto, richiede intervalli IP per i nodi (VM), nonché per i pod e i servizi GKE. Quando i DAG e le attività Airflow comunicano con altri servizi, utilizzano gli IP dei pod e questi intervalli di IP dei pod devono essere instradabili da e verso qualsiasi destinazione con cui interagiscono le attività.

Con l'agente IP Masquerade, hai la possibilità di tradurre gli indirizzi IP dei pod in indirizzi IP dei nodi, in modo che le destinazioni e i servizi scelti come target dai DAG e dalle attività di Airflow ricevano pacchetti solo dagli indirizzi IP dei nodi anziché dagli indirizzi IP dei pod. Questo è utile in ambienti che prevedono di ricevere pacchetti solo da indirizzi IP dei nodi o in cui gli intervalli IP dei pod non sono instradabili all'esterno del cluster.

Inoltre, puoi utilizzare l'agente di IP masquerading per salvare gli intervalli di rete nella configurazione di networking. Ad esempio, puoi utilizzare un intervallo di rete separato per i pod all'interno del cluster del tuo ambiente e mascherare questo traffico come proveniente dall'intervallo di indirizzi IP del nodo. In questo modo, risparmi spazio per gli indirizzi IP in un intervallo utilizzando indirizzi IP di un intervallo diverso per i pod nel cluster del tuo ambiente.

Ad esempio:

  1. Utilizzi l'intervallo 10.0.0.0/8 per le VM e solo questo intervallo è consentito dalle regole firewall.

  2. Per risparmiare intervalli di rete, utilizza un intervallo diverso (ad esempio 192.168.0.0/16) per i pod nel cluster del tuo ambiente.

  3. Per potersi connettere a qualsiasi servizio da un pod (worker Airflow), è necessario l'IP masquerading; in caso contrario, il servizio riceve il traffico da 192.168.0.0/16 e lo ignora a causa di una regola firewall. Con l'agente di IP masquerading abilitato e configurato, il servizio riceve richieste da 10.0.0.0/8, che vengono accettate.

Prima di iniziare

  • Non è possibile attivare l'agente di IP masquerading nella console Google Cloud .

  • Per utilizzare questa funzionalità, devi creare un ambiente con GKE 1.22.7 o versioni successive.

  • L'agente IP Masquerade non è disponibile per gli ambienti creati in versioni precedenti di GKE, anche se è stato eseguito l'upgrade di GKE alla versione 1.22.7 e successive.

  • Se attivi l'agente di mascheramento IP, il criterio EgressNatPolicy predefinito di GKE verrà sostituito dalla definizione di Managed Airflow. Se l'agente IP Masquerade non è abilitato, il traffico in uscita non verrà mascherato e utilizzerà l'EgressNatPolicy predefinita di GKE.

Abilita l'agente di IP masquerading per un ambiente esistente

Non è possibile attivare l'agente IP Masquerade per un ambiente esistente.

Attiva l'agente di IP masquerading durante la creazione di un ambiente

Puoi attivare l'agente di IP masquerading quando crei un ambiente.

Per saperne di più sulla creazione di ambienti Managed Airflow, consulta Crea ambiente.

Console

Non è possibile attivare l'agente di IP masquerading nella console Google Cloud .

gcloud

Quando crei un ambiente, l'argomento --enable-ip-masq-agent attiva l'agente IP Masquerade.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --service-account "SERVICE_ACCOUNT" \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-ip-masq-agent

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • SERVICE_ACCOUNT con il account di servizio del tuo ambiente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --service-account "example-account@example-project.iam.gserviceaccount.com" \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-ip-masq-agent

API

Crea una richiesta API environments.create. Specifica la configurazione nella risorsa Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.17.16-airflow-2.11.1"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
      "enableIpMasqAgent": true
    }
  }
}

Sostituisci:

  • PROJECT_ID con l'ID progetto.
  • LOCATION con la regione in cui si trova l'ambiente.
  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • SERVICE_ACCOUNT con il account di servizio del tuo ambiente.

Esempio:

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

  {
    "name": "projects/example-project/locations/us-central1/environments/example-environment",
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-2.17.16-airflow-2.11.1"
      },
      "nodeConfig": {
        "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

Quando crei un ambiente, il campo enable_ip_masq_agent nel blocco node_config attiva l'agente IP Masquerade.

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

  config {
    software_config {
      image_version = "composer-2.17.16-airflow-2.11.1"
    }
    node_config {
      service_account = "SERVICE_ACCOUNT"
      enable_ip_masq_agent = true
    }
  }

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • SERVICE_ACCOUNT con il account di servizio del tuo ambiente.

Esempio:

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

  config {
    software_config {
      image_version = "composer-2.17.16-airflow-2.11.1"
    }
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
      enable_ip_masq_agent = true
    }
  }
}

Configura l'agente di IP masquerading

Per saperne di più sull'utilizzo e sulla configurazione dell'agente di IP masquerading in Managed Airflow (Gen 2), consulta Utilizza la policy NAT in uscita per configurare l'IP masquerading nei cluster Autopilot.

Passaggi successivi