Mengonfigurasi rentang IP publik yang digunakan secara pribadi

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan cara menggunakan rentang IP publik yang digunakan secara pribadi di lingkungan IP Pribadi Anda. Untuk mengetahui 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 alamat IP yang cukup.

Lingkungan Cloud Composer dapat menggunakan beberapa rentang IP dari ruang alamat non-RFC 1918 tanpa konfigurasi tambahan.

Jika 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. Rentang IP di lingkungan yang sudah ada tidak dapat diubah.

  • 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 dalam lingkungan IP pribadi.

  • Cluster GKE dibuat dengan SNAT default dinonaktifkan.

Aktifkan 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 wilayah tempat lingkungan berada.
  • POD_IP_RANGE dengan rentang alamat IP dalam notasi CIDR. Rentang ini ditambahkan sebagai rentang alamat IP sekunder ke subjaringan 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 subjaringan 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 wilayah 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:

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 environments.create API. 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 subjaringan 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 subjaringan 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 memungkinkan 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 wilayah tempat lingkungan berada.
  • POD_IP_RANGE dengan rentang alamat IP dalam notasi CIDR. Rentang ini ditambahkan sebagai rentang alamat IP sekunder ke subjaringan 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 subjaringan 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 wilayah 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
    }

  }
}

Langkah selanjutnya