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

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

이 페이지에서는 사용자 환경에서 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 매스커레이드 에이전트를 사용 설정할 수 없습니다.

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

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

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

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

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

콘솔

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

gcloud

환경을 만들 때 --enable-ip-masq-agent 인수에서 IP 매스커레이드 에이전트를 사용 설정합니다. 또한 --enable-ip-alias 인수를 사용하여 IP 별칭을 사용 설정해야 합니다.

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

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.

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

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

environments.create API 요청을 생성합니다. 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
    }
  }
}

다음과 같이 바꿉니다.

  • 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-1.20.12-airflow-1.10.15"
      },
      "nodeConfig": {
        "ipAllocationPolicy": {
          "useIpAliases": true,
        },
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

환경을 만들 때 node_config 블록의 enable_ip_masq_agent 필드에서 IP 매스커레이드 에이전트를 사용 설정합니다. 또한 ip_allocation_policy 블록의 use_ip_aliases 필드를 사용하여 IP 별칭을 사용 설정해야 합니다.

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

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.

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

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

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

Cloud Composer 1의 IP 매스커레이드 에이전트 사용 및 구성에 대한 자세한 내용은 Standard 클러스터에서 IP 매스커레이드 에이전트 구성을 참조하세요.

다음 단계