Menghubungkan lingkungan ke jaringan VPC

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Halaman ini menjelaskan cara lingkungan Anda dapat mengakses jaringan VPC di Cloud Composer 3, memberikan petunjuk untuk menghubungkan lingkungan ke jaringan VPC, dan menjelaskan cara menonaktifkan koneksi yang sebelumnya dikonfigurasi.

Tentang akses jaringan VPC

Di Cloud Composer 3, Anda dapat mengaktifkan akses ke jaringan VPC untuk lingkungan.

Jika Anda mengaktifkan akses ke jaringan VPC untuk lingkungan:

  • Komponen Airflow di lingkungan Anda dapat mengakses endpoint jaringan pribadi di jaringan VPC Anda. Misalnya, kode DAG Anda dapat mengakses resource yang berada di jaringan VPC Anda melalui koneksi Airflow yang dikonfigurasi.

  • Jika lingkungan Anda menggunakan jaringan IP Pribadi, semua traffic internal dirutekan ke jaringan VPC Anda, kecuali traffic ke API, layanan, dan domain Google yang tersedia untuk lingkungan IP Pribadi melalui Akses Google Pribadi.

  • Bergantung pada cara Anda mengonfigurasi jaringan VPC, lingkungan IP Pribadi dapat memperoleh akses ke internet melalui jaringan VPC Anda.

  • Zona DNS Pribadi yang ditentukan di jaringan VPC Anda otomatis tersedia untuk komponen Airflow lingkungan Anda.

  • Lingkungan mencadangkan dua alamat IP di subnetwork VPC Anda dan menggunakan dua alamat IP tambahan selama pemeliharaan dan upgrade. Pastikan empat alamat IP per lingkungan tersedia di subnetwork VPC Anda.

Cloud Composer menggunakan lampiran jaringan untuk menghubungkan lingkungan Anda ke jaringan VPC:

  • Jika Anda menentukan jaringan dan subnetwork VPC, Cloud Composer akan membuat lampiran jaringan baru di project Anda. Lampiran ini dihapus setelah Anda menghapus lingkungan, menonaktifkan koneksi ke jaringan VPC, atau mengganti parameter koneksi VPC.

  • Jika Anda menentukan lampiran jaringan yang ada, lampiran tersebut harus berada di project yang sama dengan lingkungan. Lampiran ini tidak dihapus setelah Anda menghapus lingkungan, menonaktifkan koneksi, atau mengganti parameter koneksi VPC.

  • Dalam jaringan VPC Bersama:

    • Pastikan Anda telah mengonfigurasi jaringan VPC Bersama untuk Cloud Composer. Lihat Mengonfigurasi VPC Bersama untuk mengetahui informasi tentang cara mengonfigurasi project dan izin untuk Cloud Composer.

    • Setelah jaringan VPC Bersama dikonfigurasi, Anda dapat menghubungkan lingkungan ke jaringan VPC dari project host. Jika Anda menggunakan lampiran jaringan yang sudah ada, lampiran tersebut harus dibuat di project layanan (tempat lingkungan berada), dan dilampirkan ke jaringan VPC Bersama.

Batasan untuk peering DNS transitif di Cloud Composer 3

Batasan untuk peering DNS transitif berlaku untuk lingkungan Cloud Composer 3 dengan cara berikut:

  • Cloud DNS memiliki batasan satu hop transitif, yang berarti hanya dua hop yang didukung secara total.
  • Di Cloud Composer 3, komponen lingkungan Anda berjalan di project tenant dan berkomunikasi dengan project tempat lingkungan berada melalui peering VPC. Hop transitif digunakan oleh peering VPC project tenant, sehingga hanya satu hop yang dapat digunakan secara total.

Tentang rentang IP internal lingkungan

Lingkungan Cloud Composer 3 memerlukan beberapa alamat IP untuk komponennya yang berjalan di project tenant, seperti cluster lingkungan dan proxy Cloud SQL. Alamat IP ini diambil dari rentang IP internal lingkungan.

  • Rentang IP internal default adalah 100.64.128.0/20.

  • Anda dapat menentukan rentang IP internal yang berbeda saat membuat lingkungan. Rentang ini harus menggunakan mask /20.

  • Anda tidak dapat mengubah rentang IP internal lingkungan yang ada.

Rentang IP internal berinteraksi dengan jaringan VPC Anda dengan cara berikut:

  • Rentang IP internal tidak boleh bertentangan dengan subnetwork VPC yang terhubung ke lingkungan Cloud Composer. Koneksi tidak dapat diaktifkan dengan subnetwork VPC yang tumpang-tindih dengan rentang IP internal.

  • Jika rentang IP internal lingkungan tumpang-tindih dengan rentang jaringan VPC Anda, endpoint dari jaringan VPC Anda yang memiliki alamat IP yang tumpang-tindih tidak dapat diakses dari lingkungan tersebut.

    Misalnya, jika rentang internal adalah 100.64.128.0/20, maka setiap permintaan ke endpoint 100.64.128.1 di jaringan VPC Anda akan gagal karena permintaan tidak keluar dari project tenant.

  • Rentang IP internal tidak dicadangkan. Anda dapat menggunakan rentang IP internal yang sama untuk beberapa lingkungan tanpa penyiapan tambahan karena jaringan VPC internal yang digunakan oleh lingkungan yang berbeda dipisahkan.

  • Anda dapat menggunakan alamat IP rentang internal untuk tujuan lain, selama DAG dan tugas di lingkungan Anda tidak membuat permintaan ke alamat IP tersebut.

Terhubung ke jaringan VPC

Konsol

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Lingkungan

  2. Dalam daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Di bagian Konfigurasi jaringan, temukan item Network attachment, lalu klik Edit.

  5. Dalam dialog Network attachment:

    • Untuk membuat lampiran jaringan baru, di daftar Lampiran jaringan, pilih Buat lampiran jaringan baru. Dalam daftar Network dan Subnetwork, pilih jaringan VPC dan subnetwork.

    • Untuk menggunakan lampiran jaringan yang ada, di daftar Network attachment, pilih lampiran.

  6. Klik Simpan.

gcloud

Argumen Google Cloud CLI berikut menentukan parameter koneksi jaringan VPC:

  • --network: ID jaringan VPC.
  • --subnetwork: ID subnetwork VPC.
  • --network-attachment: Gunakan lampiran jaringan yang ada sebagai gantinya.

Lampiran jaringan baru

Untuk menghubungkan lingkungan Anda ke jaringan VPC melalui lampiran jaringan baru, jalankan perintah Google Cloud CLI berikut:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan
  • LOCATION: region tempat lingkungan berada
  • NETWORK_ID: ID jaringan VPC
  • SUBNETWORK_ID: ID subnetwork VPC

Contoh:

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --network projects/example-project/global/networks/example-network \
  --subnetwork projects/example-project/regions/us-central1/subnetworks/example-subnetwork

Network attachment yang ada

Untuk menghubungkan lingkungan Anda ke jaringan VPC melalui lampiran jaringan baru, jalankan perintah Google Cloud CLI berikut:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --network-attachment NETWORK_ATTACHMENT_ID

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan
  • LOCATION: region tempat lingkungan berada
  • NETWORK_ATTACHMENT_ID: lampiran jaringan dalam format projects/{project}/regions/{region}/networkAttachments/{networkAttachment} .

Contoh:

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --network-attachment projects/example-project/regions/us-central1/networkAttachments/example-network-attachment

API

  1. Buat permintaan API environments.patch.

  2. Dalam permintaan ini:

    • Untuk membuat lampiran jaringan baru:

      1. Di parameter updateMask, tentukan masker config.node_config.network,config.node_config.subnetwork.

      2. Di isi permintaan, pada kolom network dan subnetwork, tentukan ID jaringan dan subnetwork VPC Anda.

    • Untuk menggunakan lampiran jaringan yang ada:

      1. Dalam parameter updateMask, tentukan masker config.node_config.composer_network_attachment.

      2. Dalam isi permintaan, berikan nilai untuk lampiran jaringan yang ada dalam format projects/{project}/regions/{region}/networkAttachments/{networkAttachment}.

Contoh (lampiran jaringan baru):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork

"config": {
  "nodeConfig": {
    "network": "projects/example-project/global/networks/example-network",
    "subnetwork": "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
  }
}

Contoh (lampiran jaringan yang ada):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.composer_network_attachment

"config": {
  "nodeConfig": {
    "composerNetworkAttachment": "projects/example-project/regions/us-central1/networkAttachments/example-network-attachment"
  }
}

Terraform

Kolom berikut dalam blok node_config menentukan parameter koneksi jaringan VPC:

  • network: ID jaringan VPC.
  • subnetwork: ID subnetwork VPC.
  • composer_network_attachment: Gunakan lampiran jaringan yang ada sebagai gantinya.

Lampiran jaringan baru

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      network = NETWORK_ID
      subnetwork = SUBNETWORK_ID
    }

  }
}

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.
  • NETWORK_ID: ID jaringan VPC
  • SUBNETWORK_ID: ID subnetwork VPC

Contoh (lampiran jaringan baru):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {
      network = "projects/example-project/global/networks/example-network"
      subnetwork = "projects/example-project/regions/us-central1/subnetworks/example-subnetwork"
    }

    ... other configuration parameters
  }
}

Network attachment yang ada

Akibatnya, lingkungan tidak akan lagi menggunakan lampiran. Untuk mengatasi hal ini, pastikan Terraform mengabaikan perubahan pada parameter producer_accept_lists lampiran, sebagai berikut:

resource "google_compute_network_attachment" "NETWORK_ATTACHMENT_ID" {
  lifecycle {
    ignore_changes = [producer_accept_lists]
  }
  # ... other configuration parameters
}

Setelah itu, tentukan lampiran ini untuk lingkungan. Anda juga dapat menentukan lampiran yang tidak dikelola di Terraform, lihat contohnya.

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"
  config {
    node_config {
      composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id
    }
    # ... other configuration parameters
  }
}

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.
  • NETWORK_ATTACHMENT_ID: ID lampiran jaringan.

Contoh (lampiran jaringan yang ada):

resource "google_compute_network_attachment" "example" {
  lifecycle {
    ignore_changes = [producer_accept_lists]
  }
  # ... other configuration parameters
}

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {
      # Attachment is managed in Terraform:

      composer_network_attachment = google_compute_network_attachment.NETWORK_ATTACHMENT_ID.id

      # Attachment is not managed in Terraform:

      # composer_network_attachment = projects/example-project/regions/us-central1/networkAttachments/example-network-attachment
    }
    # ... other configuration parameters
  }
}

Menonaktifkan koneksi ke jaringan VPC

Konsol

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Lingkungan

  2. Dalam daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Di bagian Konfigurasi jaringan, temukan item Network attachment, lalu klik Edit.

  5. Dalam dialog Network attachment, pilih None, lalu klik Save.

gcloud

Argumen --disable-vpc-connectivity menonaktifkan koneksi jaringan VPC lingkungan Anda:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-vpc-connectivity

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan
  • LOCATION: region tempat lingkungan berada

Contoh:

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --disable-vpc-connectivity

API

  1. Buat permintaan API environments.patch.

  2. Dalam permintaan ini:

    1. Di parameter updateMask, tentukan masker config.node_config.network,config.node_config.subnetwork.

    2. Dalam isi permintaan, di kolom network dan subnetwork, tentukan nilai kosong.

Contoh:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.node_config.network,config.node_config.subnetwork

"config": {
  "nodeConfig": {
    "network": "",
    "subnetwork": ""
  }
}

Terraform

Anda tidak dapat melepaskan jaringan VPC menggunakan Terraform. Sebagai gantinya, Anda dapat melampirkan jaringan VPC lain di tempatnya, atau melepaskan jaringan menggunakan alat lain seperti Google Cloud CLI.

Langkah berikutnya