Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 비공개 IP 환경에서 비공개로 사용되는 공개 IP 범위를 사용하는 방법을 설명합니다. 비공개 IP 환경 만들기에 대한 자세한 내용은 비공개 IP 환경 구성을 참조하세요.
Cloud Composer에서 비공개로 사용되는 공개 IP 범위 정보
Google Kubernetes Engine에는 리소스에 여러 IP 주소가 필요합니다. 각 노드, 포드, 서비스에는 고유한 IP 주소가 있어야 합니다. 이로 인해 기존 비공개 IP 범위에서 충분한 IP 주소를 수용하지 못하게 될 수 있습니다.
Cloud Composer 환경은 추가 구성 없이 RFC 1918 이외의 주소 공간의 일부 IP 범위를 사용할 수 있습니다.
더 많은 IP 주소를 사용하려는 경우 환경에서 특정 공개 IP 주소 범위를 포드 및 서비스의 내부 서브넷 IP 주소 범위로 비공개로 사용할 수 있습니다. 이러한 범위를 비공개로 사용되는 공개 IP(PUPI) 범위라고 합니다.
특정 제한된 범위를 제외한 모든 공개 IP 주소를 비공개로 사용할 수 있습니다.
시작하기 전에
새 환경을 만들 때는 공개 IP 범위만 지정할 수 있습니다. 기존 환경의 IP 범위는 변경할 수 없습니다.
해당 환경은 비공개 IP 환경이어야 합니다.
gcloud
, Terraform, REST API만 사용하여 PUPI 범위로 환경을 만들 수 있습니다.GKE 포드 및 서비스만 공개 IP 범위를 사용할 수 있습니다. Cloud SQL, 웹 서버, GKE 제어 영역 등의 다른 환경 구성요소는 비공개 IP 환경에서 공개 IP 범위를 사용할 수 없습니다.
GKE 클러스터는 기본 SNAT가 중지된 상태로 생성됩니다.
환경을 만들 때 PUPI 범위 사용 설정
gcloud
PUPI 범위로 환경을 만들려면 비공개 IP 환경을 만들 때 --enable-privately-used-public-ips
인수를 사용합니다. 그런 다음 포드 및 서비스에 대한 공개 IP 범위를 지정합니다.
GKE에서 관리되는 서브넷 범위
GKE에서 관리되는 서브넷 범위를 만들려면 다음 안내를 따르세요.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr POD_IP_RANGE \
--services-ipv4-cidr SERVICES_IP_RANGE
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.POD_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 환경의 서브네트워크에 보조 IP 주소 범위로 추가되며 포드의 IP 주소 범위로 사용됩니다.SERVICES_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 해당 환경의 서브네트워크에 있는 서비스의 보조 IP 주소 범위입니다.
예를 들면 다음과 같습니다.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr 10.3.192.0/20 \
--services-ipv4-cidr 172.16.194.0/23
사용자 관리 서브넷 범위
사용자 관리형 범위를 만들려면 다음 안내를 따르세요.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name POD_IP_RANGE_NAME \
--services-secondary-range-name SERVICES_IP_RANGE_NAME
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.POD_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 포드에 사용됩니다.SERVICES_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 서비스에 사용됩니다.
예를 들면 다음과 같습니다.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name "public-1" \
--services-secondary-range-name "public-2"
API
environments.create
API 요청을 생성합니다. 환경 리소스에서 PUPI 범위로 환경의 구성 매개변수를 지정합니다.
GKE에서 관리되는 서브넷 범위
GKE에서 관리되는 서브넷 범위를 만들려면 다음 안내를 따르세요.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock":"POD_IP_RANGE",
"servicesIpv4CidrBlock":"SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.POD_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 환경의 서브네트워크에 보조 IP 주소 범위로 추가되며 포드의 IP 주소 범위로 사용됩니다.SERVICES_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 해당 환경의 서브네트워크에 있는 서비스의 보조 IP 주소 범위입니다.
예를 들면 다음과 같습니다.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock":"10.3.192.0/20",
"servicesIpv4CidrBlock":"172.16.194.0/23"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
사용자 관리 서브넷 범위
사용자 관리형 범위를 만들려면 다음 안내를 따르세요.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterSecondaryRangeName":"POD_IP_RANGE",
"servicesSecondaryRangeName": "SERVICES_IP_RANGE"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.POD_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 포드에 사용됩니다.SERVICES_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 서비스에 사용됩니다.
예를 들면 다음과 같습니다.
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterSecondaryRangeName":"public-1",
"servicesSecondaryRangeName": "public-2"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Terraform
환경을 만들 때 private_environment_config
블록의 enable_privately_used_public_ips
필드에서 PUPI 범위의 사용을 지원합니다. 포드 및 서비스에 PUPI 범위도 지정해야 합니다.
GKE에서 관리되는 서브넷 범위
GKE에서 관리되는 서브넷 범위를 만들려면 다음 안내를 따르세요.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
cluster_ipv4_cidr_block = "POD_IP_RANGE"
services_ipv4_cidr_block = "SERVICES_IP_RANGE"
cluster_secondary_range_name = null
services_secondary_range_name = null
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private ip environment parameters
}
}
}
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.POD_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 환경의 서브네트워크에 보조 IP 주소 범위로 추가되며 포드의 IP 주소 범위로 사용됩니다.SERVICES_IP_RANGE
를 CIDR 표기법으로 표시된 IP 주소 범위로 바꿉니다. 이 범위는 해당 환경의 서브네트워크에 있는 서비스의 보조 IP 주소 범위입니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
// Specify your network and subnetwork
network = google_compute_network.example_network.id
subnetwork = google_compute_subnetwork.example_subnet.id
ip_allocation_policy = [{
use_ip_aliases = true
// Specify PUPI addresses
cluster_ipv4_cidr_block = "10.3.192.0/20"
services_ipv4_cidr_block = "172.16.194.0/23"
cluster_secondary_range_name = null
services_secondary_range_name = null
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private environment parameters
}
}
}
사용자 관리 서브넷 범위
사용자 관리형 범위를 만들려면 다음 안내를 따르세요.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
cluster_ipv4_cidr_block = null
services_ipv4_cidr_block = null
cluster_secondary_range_name = POD_IP_RANGE_NAME
services_secondary_range_name = SERVICES_IP_RANGE_NAME
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private ip environment parameters
}
}
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.POD_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 포드에 사용됩니다.SERVICES_IP_RANGE_NAME
을 지정된 서브네트워크에 있는 기존 보조 IP 주소 범위의 이름으로 바꿉니다. 이 범위는 서비스에 사용됩니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
// Specify your network and subnetwork
network = google_compute_network.example_network.id
subnetwork = google_compute_subnetwork.example_subnet.id
ip_allocation_policy = [{
use_ip_aliases = true
cluster_ipv4_cidr_block = null
services_ipv4_cidr_block = null
// Specify existing ranges
cluster_secondary_range_name = "public-1"
services_secondary_range_name = "public-2"
}]
}
private_environment_config {
enable_privately_used_public_ips = true
// Other private environment parameters
}
}
}