Cloud Composer 환경에서 IP 매스커레이드 에이전트 사용 설정

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

이 페이지에서는 사용자 환경에서 IP 매스커레이드 에이전트를 사용 설정하는 방법을 설명합니다.

Cloud Composer의 IP 매스커레이드 에이전트 정보

Cloud Composer는 환경에 IP 매스커레이드 에이전트를 지원합니다.

IP 매스커레이드는 다대일 IP 주소 변환을 수행하는 데 사용되는 네트워크 주소 변환(NAT)의 일종입니다. 이를 통해 여러 클라이언트가 단일 IP 주소에서 대상에 액세스할 수 있게 해줍니다.

Cloud Composer는 GKE에서 워크로드를 실행합니다. 올바른 함수를 위해 노드(VM)뿐만 아니라 GKE 포드와 서비스의 IP 범위가 필요합니다. Airflow DAG 및 태스크가 다른 서비스와 통신하는 경우 포드 IP를 사용하며 이러한 포드 IP 범위는 태스크가 상호작용하는 모든 대상과 라우팅할 수 있어야 합니다.

IP 매스커레이드 에이전트를 사용할 경우 포드 IP 주소를 노드 IP 주소로 변환할 수 있으므로, Airflow DAG 및 태스크에서 타겟팅된 대상과 서비스가 포드 IP 주소 대신 노드 IP 주소에서만 패킷을 수신하도록 할 수 있습니다. 이 방식은 노드 IP 주소에서만 패킷을 수신할 것으로 예상되거나 포드 IP 범위를 클러스터 외부에서 라우팅할 수 없는 환경에서 유용합니다.

또한 IP 매스커레이드 에이전트를 사용하여 네트워킹 구성에 네트워크 범위를 저장할 수 있습니다. 예를 들어 환경 클러스터 내부의 포드에 별도의 네트워크 범위를 사용하고 이 트래픽을 노드 IP 주소 범위에서 발생하는 것으로 매스커레이드할 수 있습니다. 이러한 방식으로 환경 클러스터의 포드에 다른 범위의 IP 주소를 사용하여 IP 주소 공간을 범위 하나에 저장합니다.

예를 들면 다음과 같습니다.

  1. VM에 10.0.0.0/8 범위를 사용하며 이 범위만 방화벽 규칙에서 허용합니다.

  2. 네트워크 범위를 저장하려면 환경 클러스터의 포드에 다른 범위(예: 192.168.0.0/16)를 사용합니다.

  3. 포드(Airflow 작업자)에서 모든 서비스에 연결할 수 있으려면 IP 매스커레이딩이 필요합니다. 그렇지 않으면 서비스가 방화벽 규칙으로 인해 192.168.0.0/16에서 트래픽을 수신하고 삭제합니다. IP 매스커레이드 에이전트가 사용 설정 및 구성되면 서비스는 10.0.0.0/8에서 요청을 받고 수락합니다.

시작하기 전에

  • Google Cloud 콘솔에서는 IP 매스커레이드 에이전트를 사용 설정할 수 없습니다.

  • 이 기능을 사용하려면 GKE 1.22.7 이상 버전을 사용하여 환경을 만들어야 합니다.

  • GKE가 1.22.7 이상 버전으로 업그레이드되더라도 이전 GKE 버전에서 생성된 환경에서는 IP 매스커레이드 에이전트를 사용할 수 없습니다.

  • IP 매스커레이드 에이전트를 사용 설정하면 기본 GKE의 EgressNatPolicy가 Cloud Composer의 정의로 대체됩니다. IP 마스커레이드 에이전트가 사용 설정되지 않으면 발신 트래픽이 마스커레이드되지 않으며 기본 GKE의 EgressNatPolicy를 사용합니다.

기존 환경에 IP 매스커레이드 에이전트 사용 설정

기존 환경에는 IP 매스커레이드 에이전트를 사용 설정할 수 없습니다.

환경을 만들 때 IP 매스커레이드 에이전트 사용 설정

환경을 만들 때 IP 매스커레이드 에이전트를 사용 설정할 수 있습니다.

Cloud Composer 환경 만들기에 대한 자세한 내용은 환경 만들기를 참조하세요.

콘솔

Google Cloud 콘솔에서는 IP 매스커레이드 에이전트를 사용 설정할 수 없습니다.

gcloud

환경을 만들 때 --enable-ip-masq-agent 인수에서 IP 매스커레이드 에이전트를 사용 설정합니다.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.5-airflow-2.10.5 \
    --enable-ip-masq-agent

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME: 환경 이름
  • LOCATION: 환경이 위치한 리전

예시:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.5-airflow-2.10.5 \
    --enable-ip-masq-agent

API

environments.create API 요청을 생성합니다. Environment 리소스에서 구성을 지정합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.13.5-airflow-2.10.5"
    },
    "nodeConfig": {
      "enableIpMasqAgent": true
    }
  }
}

다음과 같이 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • LOCATION: 환경이 위치한 리전
  • ENVIRONMENT_NAME: 환경 이름

예:

  // 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.13.5-airflow-2.10.5"
      },
      "nodeConfig": {
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

환경을 만들 때 node_config 블록의 enable_ip_masq_agent 필드에서 IP 매스커레이드 에이전트를 사용 설정합니다.

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

  config {
    software_config {
      image_version = "composer-2.13.5-airflow-2.10.5"
    }
    node_config {
      enable_ip_masq_agent = true
    }
  }

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME: 환경 이름
  • LOCATION: 환경이 위치한 리전

예:

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

  config {
    software_config {
      image_version = "composer-2.13.5-airflow-2.10.5"
    }
    node_config {
      enable_ip_masq_agent = true
    }
  }
}

IP 매스커레이드 에이전트 구성

Cloud Composer 2의 IP 매스커레이드 에이전트 사용 및 구성에 대한 자세한 내용은 이그레스 NAT 정책을 사용하여 Autopilot 클러스터에서 IP 매스커레이드 구성을 참조하세요.

다음 단계