Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara menggunakan rentang IP publik yang digunakan secara pribadi di lingkungan IP Pribadi Anda. Untuk informasi umum tentang cara membuat lingkungan IP Pribadi, lihat Mengonfigurasi lingkungan IP pribadi.
Tentang rentang IP publik yang digunakan secara pribadi di Cloud Composer
Google Kubernetes Engine memerlukan banyak alamat IP untuk resource-nya: setiap node, pod, dan layanan harus memiliki alamat IP yang unik. Hal ini dapat menyebabkan situasi saat rentang IP pribadi yang ada tidak dapat mengakomodasi cukup alamat IP.
Lingkungan Cloud Composer dapat menggunakan beberapa rentang IP dari ruang alamat non-RFC 1918 tanpa konfigurasi tambahan.
Jika Anda ingin menggunakan lebih banyak alamat IP, lingkungan Anda dapat secara pribadi menggunakan rentang alamat IP publik tertentu sebagai rentang alamat IP subnet internal untuk pod dan layanan. Rentang tersebut disebut rentang IP publik yang digunakan secara pribadi (PUPI).
Anda dapat menggunakan alamat IP publik apa pun secara pribadi kecuali untuk rentang terbatas tertentu.
Sebelum memulai
Anda hanya dapat menentukan rentang IP publik saat membuat lingkungan baru. Anda tidak dapat mengubah rentang IP lingkungan yang ada.
Lingkungan Anda harus berupa lingkungan IP Pribadi.
Anda dapat membuat lingkungan dengan rentang PUPI hanya menggunakan
gcloud
, Terraform, dan REST API.Hanya pod dan layanan GKE yang dapat menggunakan rentang IP publik. Komponen lingkungan lain seperti Cloud SQL, server web, dan bidang kontrol GKE tidak dapat menggunakan rentang IP publik di lingkungan IP pribadi.
Cluster GKE dibuat dengan SNAT default dinonaktifkan.
Mengaktifkan rentang PUPI saat Anda membuat lingkungan
gcloud
Untuk membuat lingkungan dengan rentang PUPI, gunakan argumen --enable-privately-used-public-ips
saat Anda membuat lingkungan IP Pribadi. Kemudian, tentukan rentang IP publik untuk pod dan layanan.
Rentang subnet yang dikelola oleh GKE
Untuk membuat rentang subnet yang dikelola oleh 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
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan tersebut berada.POD_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini ditambahkan sebagai rentang alamat IP sekunder ke subnetwork lingkungan Anda dan digunakan sebagai rentang alamat IP untuk pod.SERVICES_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini adalah rentang alamat IP sekunder untuk layanan di subnetwork lingkungan Anda.
Contoh:
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
Rentang subnet yang dikelola pengguna
Untuk membuat rentang yang dikelola pengguna:
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
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan tersebut berada.POD_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh pod.SERVICES_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh layanan.
Contoh:
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
Buat
permintaan API environments.create
. Di
resource Environment, tentukan parameter
konfigurasi untuk lingkungan dengan rentang PUPI.
Rentang subnet yang dikelola oleh GKE
Untuk membuat rentang subnet yang dikelola oleh 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
}
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.POD_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini ditambahkan sebagai rentang alamat IP sekunder ke subnetwork lingkungan Anda dan digunakan sebagai rentang alamat IP untuk pod.SERVICES_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini adalah rentang alamat IP sekunder untuk layanan di subnetwork lingkungan Anda.
Contoh:
// 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
}
}
}
Rentang subnet yang dikelola pengguna
Untuk membuat rentang yang dikelola pengguna:
// 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
}
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.POD_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh pod.SERVICES_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh layanan.
Contoh:
// 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
Saat Anda membuat lingkungan, kolom enable_privately_used_public_ips
di blok private_environment_config
akan mengaktifkan penggunaan rentang PUPI. Anda juga harus menentukan rentang PUPI untuk pod dan layanan.
Rentang subnet yang dikelola oleh GKE
Untuk membuat rentang subnet yang dikelola oleh 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
}
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan tersebut berada.POD_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini ditambahkan sebagai rentang alamat IP sekunder ke subnetwork lingkungan Anda dan digunakan sebagai rentang alamat IP untuk pod.SERVICES_IP_RANGE
dengan rentang alamat IP dalam notasi CIDR. Rentang ini adalah rentang alamat IP sekunder untuk layanan di subnetwork lingkungan Anda.
Contoh:
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
}
}
}
Rentang subnet yang dikelola pengguna
Untuk membuat rentang yang dikelola pengguna:
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
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan berada.POD_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh pod.SERVICES_IP_RANGE_NAME
dengan nama rentang alamat IP sekunder yang ada di subnetwork yang ditentukan. Rentang ini digunakan oleh layanan.
Contoh:
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
}
}
}