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 주소 공간을 범위 하나에 저장합니다.
예를 들면 다음과 같습니다.
VM에
10.0.0.0/8
범위를 사용하며 이 범위만 방화벽 규칙에서 허용합니다.네트워크 범위를 저장하려면 환경 클러스터의 포드에 다른 범위(예:
192.168.0.0/16
)를 사용합니다.포드(Airflow 작업자)에서 모든 서비스에 연결할 수 있으려면 IP 매스커레이딩이 필요합니다. 그렇지 않으면 서비스가 방화벽 규칙으로 인해
192.168.0.0/16
에서 트래픽을 수신하고 삭제합니다. IP 매스커레이드 에이전트가 사용 설정 및 구성되면 서비스는10.0.0.0/8
에서 요청을 받고 수락합니다.
시작하기 전에
Google Cloud 콘솔에서는 IP 매스커레이드 에이전트를 사용 설정할 수 없습니다.
기존 환경에 IP 매스커레이드 에이전트 사용 설정
기존 환경에는 IP 매스커레이드 에이전트를 사용 설정할 수 없습니다.
환경을 만들 때 IP 매스커레이드 에이전트 사용 설정
환경을 만들 때 IP 매스커레이드 에이전트를 사용 설정할 수 있습니다.
Cloud Composer 환경 만들기에 대한 자세한 내용은 환경 만들기를 참조하세요.
콘솔
Google Cloud 콘솔에서는 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
: 프로젝트 IDLOCATION
: 환경이 위치한 리전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 매스커레이드 에이전트 구성을 참조하세요.