IP-Masquerade-Agent in Managed Airflow-Umgebungen aktivieren

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Auf dieser Seite wird beschrieben, wie Sie den IP-Masquerading-Agent für Ihre Umgebung aktivieren.

IP-Masquerade-Agent in Managed Airflow

Managed Airflow unterstützt den IP-Masquerade-Agent für Ihre Umgebungen.

Die IP-Maskierung ist eine Form von Network Address Translation (NAT), die verwendet wird, um n:1-IP-Adressübersetzungen auszuführen. So können mehrere Clients über eine einzige IP-Adresse auf ein Ziel zugreifen.

Managed Airflow führt Ihre Arbeitslasten in der GKE aus. Für eine korrekte Funktion sind IP-Bereiche für Knoten (VMs) sowie GKE-Pods und -Dienste erforderlich. Wenn Airflow-DAGs und -Aufgaben mit anderen Diensten kommunizieren, verwenden sie Pod-IP-Adressen und diese Pod-IP-Bereiche müssen an und von allen Zielen weitergeleitet werden können, mit denen die Aufgaben interagieren.

Mit dem IP-Masquerade-Agent können Sie Pod-IP-Adressen in Knoten-IP-Adressen übersetzen, sodass Ziele und Dienste, die von Airflow-DAGs und Aufgaben als Ziel dienen, nur Pakete von Knoten-IP-Adressen anstelle von Pod-IP-Adressen empfangen. Das ist in Umgebungen nützlich, in denen nur Pakete von Knoten-IP-Adressen empfangen werden sollen oder in denen Pod-IP-Bereiche außerhalb des Clusters nicht routingfähig sind.

Darüber hinaus können Sie den IP-Masquerade-Agent verwenden, um Netzwerkbereiche in Ihrer Netzwerkkonfiguration zu speichern. Sie können beispielsweise einen separaten Netzwerkbereich für Pods im Cluster Ihrer Umgebung verwenden und diesen Traffic so maskieren, dass er aus dem IP-Adressbereich des Knotens stammt. Auf diese Weise speichern Sie den IP-Adressbereich in einem Bereich, indem Sie IP-Adressen aus einem anderen Bereich für Pods im Cluster Ihrer Umgebung verwenden.

Beispiel:

  1. Sie verwenden den 10.0.0.0/8-Bereich für VMs. Nur dieser Bereich ist durch Ihre Firewallregeln zulässig.

  2. Zum Speichern von Netzwerkbereichen verwenden Sie einen anderen Bereich (z. B. 192.168.0.0/16) für Pods im Cluster Ihrer Umgebung.

  3. Zur Verbindung mit einem beliebigen Dienst von einem Pod (Airflow-Worker) ist eine IP-Maskierung erforderlich. Andernfalls empfängt der Dienst Traffic von 192.168.0.0/16 und löscht ihn aufgrund einer Firewallregel. Wenn der IP-Masquerade-Agent aktiviert und konfiguriert ist, erhält der Dienst Anfragen von 10.0.0.0/8, die akzeptiert werden.

Hinweis

  • Es ist nicht möglich, den IP-Masquerading-Agent in der Google Cloud Console zu aktivieren.

  • Wenn Sie diese Funktion verwenden möchten, müssen Sie eine Umgebung mit GKE 1.22.7 oder höher erstellen.

  • Der IP-Masquerading-Agent ist nicht für Umgebungen verfügbar, die in früheren GKE-Versionen erstellt wurden, auch wenn GKE auf 1.22.7 und höhere Versionen aktualisiert wurde.

  • Wenn Sie den IP-Masquerading-Agent aktivieren, wird die standardmäßige EgressNatPolicy von GKE durch die Definition von Managed Airflow ersetzt. Wenn der IP-Masquerading-Agent nicht aktiviert ist, wird der ausgehende Traffic nicht maskiert und die Standard-EgressNatPolicy von GKE wird verwendet.

IP-Masquerade-Agent für eine vorhandene Umgebung aktivieren

Es ist nicht möglich, den IP-Masquerade-Agent für eine vorhandene Umgebung zu aktivieren.

IP-Masquerade-Agent beim Erstellen einer Umgebung aktivieren

Sie können den IP-Masquerade-Agent beim Erstellen einer Umgebung aktivieren.

Weitere Informationen zum Erstellen von Managed Airflow-Umgebungen finden Sie unter Umgebung erstellen.

Console

Es ist nicht möglich, den IP-Masquerading-Agent in der Google Cloud Console zu aktivieren.

gcloud

Wenn Sie eine Umgebung erstellen, aktiviert das Argument --enable-ip-masq-agent den IP-Masquerade-Agent.

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:

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

Erstellen Sie eine API-Anfrage environments.create. Geben Sie die Konfiguration in der Ressource Environment an.

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

Ersetzen Sie:

  • PROJECT_ID durch die Projekt-ID.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:

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

Wenn Sie eine Umgebung erstellen, aktiviert das Feld enable_ip_masq_agent im Block node_config den IP-Masquerade-Agent.

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

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:

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

IP-Masquerade-Agent konfigurieren

Weitere Informationen zur Verwendung und Konfiguration des IP-Masquerade-Agents in Managed Airflow (Gen 2) finden Sie unter NAT-Richtlinie für ausgehenden Traffic zur Konfiguration einer IP-Maskierung in Autopilot-Clustern verwenden.

Nächste Schritte