Anda dapat mengaktifkan layanan, tugas, atau kumpulan pekerja Cloud Run untuk mengirim traffic ke jaringan VPC menggunakan traffic keluar VPC Langsung tanpa memerlukan konektor Akses VPC Serverless.
Sebelum memulai
Buat jaringan VPC di project Anda jika belum memilikinya.
Jika Anda menggunakan VPC Bersama dengan layanan atau tugas Cloud Run, lihat Menghubungkan ke jaringan VPC Bersama.
Tinjau bagian konfigurasi alamat IP berikut:
Alokasi alamat IP untuk panduan dalam mengalokasikan alamat IP dari subnet Anda.
Strategi kehabisan alamat IP untuk menggunakan rentang alamat IP alternatif.
Batasan
Batasan berikut berlaku untuk layanan, tugas, dan kumpulan pekerja Cloud Run:
- Cloud Run mendukung throughput hingga 1 Gbps per instance individu. Melebihi jumlah ini akan menyebabkan pembatasan performa.
Kuota penggunaan Cloud Run membatasi jumlah maksimum instance yang dapat Anda konfigurasi untuk menggunakan egress VPC Langsung. Jumlah maksimum dikonfigurasi per revisi atau eksekusi tugas Cloud Run. Untuk menambah batas default, lihat cara menambah kuota.
- Layanan, tugas, dan kumpulan pekerja Cloud Run mungkin mengalami gangguan koneksi selama peristiwa pemeliharaan infrastruktur jaringan. Sebaiknya gunakan library klien yang dapat menangani reset koneksi sesekali.
- Anda mungkin mengalami penundaan konektivitas internet saat instance dimulai jika menggunakan traffic keluar VPC Langsung dengan Cloud NAT. Sebaiknya terapkan logika coba lagi Anda sendiri dalam kasus ini.
- Dukungan traffic keluar VPC langsung untuk traffic IPv6 internal hanya tersedia dalam Pratinjau.
- NAT Pribadi hanya tersedia dalam Pratinjau.
Item berikut tidak didukung oleh Traffic keluar VPC Langsung:
- Log Aliran VPC tidak memberikan nama layanan atau revisi Cloud Run.
- Log Aliran VPC tidak dilaporkan dari resource non-VM seperti Cloud Run atau mesin lokal.
- Duplikasi Paket
- Network Intelligence Center, termasuk Uji Konektivitas
- Traffic IPv6 eksternal melalui jaringan VPC
- Tag jaringan atau identitas layanan dalam aturan firewall ingress.
- Aturan firewall tidak dapat menggunakan tag Resource Manager yang terpasang ke workload Cloud Run.
- Tugas Cloud Run yang berjalan lebih dari 1 jam mungkin mengalami
gangguan koneksi. Hal ini dapat terjadi selama
peristiwa pemeliharaan
yang memigrasikan tugas dari satu komputer ke komputer lain. Penampung menerima
sinyal
SIGTSTP
10 detik sebelum peristiwa dan sinyalSIGCONT
setelah peristiwa. Setelah container menerima sinyalSIGCONT
, coba hubungkan kembali.
Alokasi alamat IP
Untuk menempatkan layanan, tugas, atau kumpulan pekerja Cloud Run di jaringan VPC, Anda harus menentukan jaringan dan subnet. Cloud Run mengalokasikan alamat IP dari subnet Anda.
Alamat IP bersifat sementara, jadi jangan buat kebijakan berdasarkan IP pribadi. Jika perlu membuat kebijakan berdasarkan IP, seperti pada aturan firewall, Anda harus menggunakan rentang alamat IP seluruh subnet.
Untuk mengubah jaringan atau subnet yang digunakan oleh layanan, tugas, atau kumpulan pekerja, deploy revisi baru atau jalankan tugas baru yang menggunakan nilai jaringan dan subnet baru.
Peningkatan dan penurunan skala
Untuk peningkatan skala yang lebih cepat selama lonjakan traffic, Cloud Run mencadangkan alamat IP dalam blok 16 (masker subnet 28
) sekaligus.
Melihat alamat IP yang telah dialokasikan Cloud Run.
Untuk memastikan Anda memiliki alamat IPv4 yang cukup untuk digunakan di Cloud Run, rentang alamat IPv4 subnet Anda harus /26
atau lebih besar.
Untuk efisiensi alokasi IP dan kemudahan pengelolaan, tempatkan beberapa resource di subnet yang sama. Jika ruang alamat IPv4 Anda terbatas, lihat Rentang IPv4 yang didukung untuk opsi selengkapnya.
Untuk menghapus subnet, Anda harus menghapus atau men-deploy ulang layanan, tugas, atau kumpulan pekerja Cloud Run terlebih dahulu untuk berhenti menggunakan subnet, lalu tunggu 1-2 jam.
Penggunaan alamat IP untuk layanan dan kumpulan pekerja
Dalam kondisi stabil, Cloud Run menggunakan alamat IP 2 kali (2X) lebih banyak daripada jumlah instance. Saat revisi diperkecil skalanya, Cloud Run mempertahankan alamat IP-nya hingga 20 menit. Secara total, cadangkan setidaknya 2X jumlah alamat IP, ditambah buffer untuk memperhitungkan pembaruan revisi.
Misalnya, jika Anda mengupgrade revisi sehingga revision 1
diskalakan dari 100
instance menjadi nol, sementara revision 2
diskalakan dari nol menjadi 100,
Cloud Run akan mempertahankan alamat IP revision 1
hingga 20
menit setelah penskalaan. Selama periode retensi 20 menit, Anda harus
mencadangkan minimal 400 alamat IP ((100 + 100) * 2
).
Konsumsi IP untuk tugas
Untuk tugas Cloud Run, setiap tugas menggunakan 1 alamat IP selama
durasi eksekusinya ditambah 7 menit setelah selesai. Pastikan subnet Anda cukup besar untuk mengakomodasi semua eksekusi tugas pekerjaan serentak, dengan subnet /26
reservasi minimum yang diperlukan.
Contoh:
- Satu tugas yang berjalan setiap hari dan selalu selesai setidaknya 7 menit sebelum eksekusi berikutnya menggunakan maksimum 1 alamat IP di subnet.
- Tugas 10 task yang berjalan setiap 10 menit, dengan setiap tugas berjalan selama 15 menit,
menggunakan 1 alamat IP selama 22 menit per tugas (3 eksekusi menggunakan alamat IP
secara bersamaan), seperti yang ditunjukkan dalam contoh berikut. Oleh karena itu, tugas ini menggunakan
30 alamat IP dalam keadaan stabil.
- Tugas tunggal yang memerlukan waktu 1 menit untuk dijalankan dan dieksekusi 100 kali per menit memerlukan sekitar 800 alamat IP, bergantung pada waktu eksekusi yang tepat.
Rentang IPv4 yang didukung
Cloud Run mendukung rentang IPv4 berikut untuk subnet Anda:
Menyiapkan izin IAM
Pastikan Cloud Run memiliki akses ke jaringan VPC dengan menggunakan salah satu metode berikut:
Peran Agen Layanan Cloud Run: Secara default, agen layanan Cloud Run memiliki peran Agen Layanan Cloud Run (
roles/run.serviceAgent
) yang berisi izin yang diperlukan.Izin kustom: Untuk kontrol yang lebih terperinci, berikan izin tambahan berikut kepada agen layanan Cloud Run di project:
compute.networks.get
compute.subnetworks.get
compute.subnetworks.use
pada project atau subnet tertentucompute.addresses.get
compute.addresses.list
compute.addresses.createInternal
compute.addresses.deleteInternal
compute.regionOperations.get
Peran Compute Network User: Jika Anda tidak menggunakan peran Agen Layanan Cloud Run default atau izin kustom, berikan peran Compute Network User (
roles/compute.networkUser
) di akun layanan Agen Layanan Cloud Run dengan menjalankan perintah berikut:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
Ganti kode berikut:
- PROJECT_ID: ID project Anda.
- PROJECT_NUMBER: nomor project tempat Anda men-deploy layanan, tugas, atau kumpulan pekerja Cloud Run.
Men-deploy resource Cloud Run
Bergantung pada resource Cloud Run yang Anda miliki, lihat petunjuk di salah satu bagian berikut:
Men-deploy layanan
Traffic keluar VPC langsung memungkinkan layanan Cloud Run Anda mengirim traffic ke jaringan VPC tanpa konektor Akses VPC Serverless. Biaya jaringan diskalakan hingga ke nol seperti layanan itu sendiri. Anda juga dapat menambahkan tag jaringan langsung pada revisi layanan Cloud Run untuk keamanan jaringan yang lebih terperinci, seperti menerapkan aturan firewall VPC.
Anda dapat mengonfigurasi traffic keluar VPC Langsung dengan layanan menggunakan Google Cloud konsol, Google Cloud CLI, YAML, atau Terraform.
Konsol
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi dan men-deploy layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai kebutuhan, lalu klik Container, Volume, Jaringan, Keamanan untuk memperluas halaman konfigurasi layanan.
Klik tab Networking.
Klik Hubungkan ke VPC untuk traffic keluar.
Klik Kirim traffic langsung ke VPC.
Di kolom Network, pilih jaringan VPC yang ingin Anda kirimi traffic.
Di kolom Subnet, pilih subnet tempat alamat IP diterima oleh layanan Anda. Anda dapat men-deploy beberapa layanan di subnet yang sama.
Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan layanan Anda atau layanan lainnya. Tag jaringan ditentukan pada tingkat revisi. Setiap revisi layanan dapat memiliki tag jaringan yang berbeda, seperti
network-tag-2
.Untuk Pemilihan rute traffic, pilih salah satu opsi berikut:
- Rutekan hanya permintaan IP pribadi ke VPC untuk hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- Rutekan semua traffic ke VPC untuk mengirim semua traffic keluar melalui jaringan VPC.
Klik Buat atau Deploy.
Untuk memverifikasi bahwa layanan Anda berada di jaringan VPC, klik layanan tersebut, lalu klik tab Networking. Jaringan dan subnet tercantum dalam kartu VPC.
Kini Anda dapat mengirim permintaan dari layanan Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.
gcloud
Untuk men-deploy layanan Cloud Run tanpa konektor dari Google Cloud CLI:
Update komponen
gcloud
ke versi terbaru:gcloud components update
Pastikan Compute Engine API diaktifkan untuk project Anda:
gcloud services enable compute.googleapis.com
Deploy layanan Cloud Run Anda dengan perintah berikut:
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
Ganti:
- SERVICE_NAME dengan nama layanan Cloud Run Anda.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan yang dipisahkan
koma yang ingin Anda kaitkan
dengan layanan. Untuk layanan, tag jaringan
ditentukan pada tingkat revisi. Setiap revisi jaringan dapat memiliki
tag jaringan yang berbeda, seperti
network-tag-2
. - EGRESS_SETTING dengan
nilai setelan traffic keluar:
all-traffic
: Mengirim semua traffic keluar melalui jaringan VPC.private-ranges-only
: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- REGION dengan region untuk layanan Anda.
Untuk memverifikasi bahwa layanan Anda berada di jaringan VPC, jalankan perintah berikut:
gcloud run services describe SERVICE_NAME \ --region=REGION
Ganti:
SERVICE_NAME
dengan nama layanan Anda.REGION
dengan region untuk layanan yang Anda tentukan di langkah sebelumnya.
Output harus berisi nama jaringan, subnet, dan setelan egress, misalnya:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
Kini Anda dapat mengirim permintaan dari layanan Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut berikut:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Ganti:
- SERVICE_NAME dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
- REGION dengan region untuk layanan Cloud Run, yang harus sesuai dengan region subnet Anda.
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- Opsional NETWORK_TAG_NAMES dengan nama
tag jaringan
yang ingin Anda kaitkan dengan layanan. Untuk layanan, tag jaringan
ditentukan pada tingkat revisi. Setiap revisi jaringan dapat memiliki
tag jaringan yang berbeda, seperti
network-tag-2
. - EGRESS_SETTING dengan
nilai setelan traffic keluar:
all-traffic
: Mengirim semua traffic keluar melalui jaringan VPC.private-ranges-only
: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- IMAGE dengan URL image container layanan Anda.
Anda juga dapat menentukan lebih banyak konfigurasi, seperti variabel lingkungan atau batas memori.
Buat atau perbarui layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke file
main.tf
Anda:
Sebagai opsi, tampilkan layanan Anda ke publik jika Anda ingin mengizinkan akses tanpa autentikasi ke layanan.
Buat tugas
Traffic keluar VPC langsung memungkinkan tugas Cloud Run Anda mengirim traffic ke jaringan VPC tanpa konektor Akses VPC Serverless. Anda juga dapat menambahkan tag jaringan langsung di tugas Cloud Run untuk keamanan jaringan yang lebih terperinci, seperti menerapkan aturan firewall VPC.
Anda dapat mengonfigurasi traffic keluar VPC Langsung dengan tugas menggunakan konsolGoogle Cloud , Google Cloud CLI, atau YAML.
Konsol
Jika Anda mengonfigurasi tugas baru, klik tab Tugas dan isi halaman setelan tugas awal sesuai kebutuhan. Jika Anda mengonfigurasi tugas yang sudah ada, klik tugas, kemudian klik Edit.
Klik Container, Variabel, & Rahasia, Koneksi, Keamanan untuk memperluas halaman properti tugas.
Klik tab Koneksi.
Klik Hubungkan ke VPC untuk traffic keluar.
Klik Kirim traffic langsung ke VPC.
Di kolom Network, pilih jaringan VPC yang ingin Anda kirimi traffic.
Di kolom Subnet, pilih subnet tempat alamat IP diterima oleh tugas Anda. Anda dapat menjalankan beberapa tugas di subnet yang sama.
Untuk Pemilihan rute traffic, pilih salah satu opsi berikut:
- Rutekan hanya permintaan IP pribadi ke VPC untuk hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- Rutekan semua traffic ke VPC untuk mengirim semua traffic keluar melalui jaringan VPC.
Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan layanan Anda atau layanan lainnya. Tag jaringan ditentukan pada tingkat revisi. Setiap revisi layanan dapat memiliki tag jaringan yang berbeda, seperti
network-tag-2
.Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan tugas Anda. Untuk tugas, tag jaringan ditentukan pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan yang berbeda, seperti
network-tag-2
.Klik Buat atau Perbarui.
Untuk memverifikasi bahwa tugas Anda berada di jaringan VPC, klik tugas tersebut, lalu klik tab Konfigurasi. Jaringan dan subnet tercantum dalam kartuVPC.
Sekarang Anda dapat menjalankan tugas Cloud Run dan mengirim permintaan dari tugas ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.
gcloud
Untuk membuat tugas Cloud Run tanpa konektor dari Google Cloud CLI:
Update komponen
gcloud
ke versi terbaru:gcloud components update
Pastikan Compute Engine API diaktifkan untuk project Anda:
gcloud services enable compute.googleapis.com
Buat tugas Cloud Run dengan perintah berikut:
gcloud run jobs create JOB_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
Ganti:
- JOB_NAME dengan nama tugas Cloud Run Anda
- IMAGE_URL dengan referensi ke
image container, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- Opsional: NETWORK_TAG_NAMES dengan nama
tag jaringan
yang ingin Anda kaitkan dengan tugas. Untuk tugas, tag jaringan ditentukan
pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan
yang berbeda, seperti
network-tag-2
. - EGRESS_SETTING dengan
nilai setelan traffic keluar:
all-traffic
: Mengirim semua traffic keluar melalui jaringan VPC.private-ranges-only
: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- REGION dengan region untuk tugas Anda.
Untuk memverifikasi bahwa tugas berada di jaringan VPC Anda, jalankan perintah berikut:
gcloud run jobs describe JOB_NAME \ --region=REGION
Ganti:
JOB_NAME
dengan nama tugas Anda.REGION
dengan region untuk tugas yang Anda tentukan di langkah sebelumnya.
Output harus berisi nama jaringan dan subnet, misalnya:
VPC network: Network: default Subnet: default
Sekarang Anda dapat menjalankan tugas Cloud Run dan mengirim permintaan dari tugas ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.
YAML
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Perbarui atribut berikut:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Ganti:
- JOB_NAME dengan nama tugas Cloud Run Anda Nama tugas harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
- REGION dengan region untuk tugas Cloud Run, yang harus sesuai dengan region subnet Anda.
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- Opsional: NETWORK_TAG_NAMES dengan nama
tag jaringan
yang ingin Anda kaitkan dengan tugas. Untuk tugas, tag jaringan ditentukan
pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan
yang berbeda, seperti
network-tag-2
. - EGRESS_SETTING dengan
nilai setelan traffic keluar:
all-traffic
: Mengirim semua traffic keluar melalui jaringan VPC.private-ranges-only
: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- IMAGE dengan URL image container tugas Anda.
Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Men-deploy kumpulan pekerja
Traffic keluar VPC langsung memungkinkan kumpulan pekerja Cloud Run Anda mengirim traffic ke jaringan VPC tanpa konektor Akses VPC Serverless. Biaya jaringan diskalakan hingga ke nol seperti kumpulan pekerja itu sendiri. Anda juga dapat menambahkan tag jaringan langsung pada revisi pool pekerja Cloud Run untuk keamanan jaringan yang lebih terperinci, seperti menerapkan aturan firewall VPC.
Anda dapat mengonfigurasi traffic keluar VPC Langsung dengan kumpulan pekerja menggunakan Google Cloud CLI.
gcloud
Untuk men-deploy kumpulan pekerja Cloud Run tanpa konektor dari Google Cloud CLI:
Update komponen
gcloud
ke versi terbaru:gcloud components update
Pastikan Compute Engine API diaktifkan untuk project Anda:
gcloud services enable compute.googleapis.com
Deploy kumpulan pekerja Cloud Run Anda dengan perintah berikut:
gcloud beta run worker-pools deploy WORKER_POOL \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION
Ganti:
- WORKER_POOL dengan nama kumpulan pekerja Cloud Run Anda. Nama kumpulan pekerja harus terdiri dari 49 karakter atau kurang, menggunakan nama unik per region dan project, dan tidak boleh memiliki nama yang sama dengan nama layanan yang ada dari project Anda. Jika worker pool belum ada, perintah ini akan membuat worker pool selama deployment. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama worker pool jika menghilangkannya.
- IMAGE_URL dengan referensi ke image container yang
berisi worker pool, seperti
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan yang dipisahkan koma
yang ingin Anda kaitkan dengan worker pool. Untuk layanan, tag jaringan
ditentukan pada tingkat revisi. Setiap revisi pool worker dapat memiliki
tag jaringan yang berbeda, seperti
network-tag-2
. - EGRESS_SETTING dengan
nilai setelan traffic keluar:
all-traffic
: Mengirim semua traffic keluar melalui jaringan VPC.private-ranges-only
: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
- REGION dengan region untuk kumpulan pekerja Anda.
Untuk memverifikasi bahwa kumpulan pekerja Anda berada di jaringan VPC, jalankan perintah berikut:
gcloud beta run worker-pools describe WORKER_POOL \ --region=REGION
Ganti:
WORKER_POOL
dengan nama kumpulan pekerja Anda.REGION
dengan region untuk worker pool yang Anda tentukan di langkah sebelumnya.
Output harus berisi nama jaringan, subnet, dan setelan egress, misalnya:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
Kini Anda dapat mengirim permintaan dari kumpulan pekerja Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.
Menyiapkan layanan dan tugas stack ganda
Untuk menambahkan subnet stack ganda dengan rentang IPv6 internal pada layanan atau tugas Cloud Run, lihat Menyiapkan layanan dan tugas stack ganda.
Membatasi akses dengan aturan firewall
Batasi akses ke resource di jaringan VPC menggunakan aturan firewall VPC. Tambahkan batasan ini dengan menggunakan salah satu strategi berikut:
- Buat aturan firewall masuk yang merujuk ke layanan atau tugas Anda dengan menggunakan rentang IP subnet.
Buat aturan firewall keluar yang merujuk ke service atau job Anda.
Dalam aturan firewall keluar, rujuk layanan atau tugas Anda menggunakan identitas layanan akun layanan tertaut, rentang IP subnet, atau tag jaringan terkait.
Tag jaringan untuk traffic keluar
Tambahkan lapisan keamanan jaringan tambahan dengan menggunakan tag jaringan dalam aturan firewall egress.
Konsol
Untuk mengaitkan tag jaringan dengan layanan atau tugas:
Di konsol Google Cloud , buka halaman Cloud Run.
Klik layanan atau tugas yang ingin Anda kaitkan dengan tag jaringan, lalu klik Edit dan deploy revisi baru untuk layanan atau Edit untuk tugas.
Klik tab Networking untuk layanan, atau tab Connections untuk tugas.
Pastikan Anda telah memilih Hubungkan ke VPC untuk traffic keluar dan Kirim traffic langsung ke VPC.
Di kolom Subnet, pilih subnet tempat alamat IP diterima oleh layanan Anda. Anda dapat men-deploy atau menjalankan beberapa layanan atau tugas di subnet yang sama.
Di kolom Tag jaringan, masukkan nama tag jaringan yang ingin Anda kaitkan dengan layanan atau tugas Anda.
Klik Deploy atau Perbarui.
Untuk layanan, setiap revisi layanan dapat memiliki serangkaian tag jaringan yang berbeda karena tag jaringan ditentukan pada tingkat revisi. Untuk tugas, eksekusi tugas memiliki tag jaringan yang sama dengan yang dimiliki tugas saat eksekusi tugas dibuat.
gcloud
Untuk mengaitkan tag jaringan
dengan layanan atau tugas, gunakan perintah gcloud run deploy
:
gcloud run deploy SERVICE_JOB_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --region=REGION
Ganti kode berikut:
- SERVICE_JOB_NAME dengan nama layanan atau tugas Anda.
- IMAGE_URL dengan URL gambar layanan atau tugas.
- NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
- NETWORK_TAG_NAMES dengan nama tag jaringan Anda atau daftar tag jaringan yang dipisahkan koma.
- REGION dengan nama wilayah Anda.
Untuk layanan, setiap revisi layanan dapat memiliki serangkaian tag jaringan yang berbeda karena tag jaringan ditentukan pada tingkat revisi. Untuk tugas, eksekusi tugas memiliki tag jaringan yang sama dengan yang dimiliki tugas saat eksekusi tugas dibuat.
Memutus koneksi resource Cloud Run
Bergantung pada resource Cloud Run yang Anda miliki, lihat petunjuk di salah satu bagian berikut:
Memutuskan koneksi layanan
Konsol
Untuk menghapus layanan Anda dari jaringan VPC:
Klik layanan yang ingin Anda hapus, lalu klik Edit dan deploy revisi baru.
Klik tab Networking.
Hapus Menghubungkan ke VPC untuk traffic keluar.
Klik Deploy.
Untuk memverifikasi bahwa layanan Anda tidak lagi berada di jaringan VPC, klik tab Networking. Jaringan dan subnet tidak lagi tercantum dalam kartu VPC.
Untuk menghapus tag jaringan saja dan menjaga layanan tetap terhubung ke jaringan VPC:
Klik layanan yang berisi tag jaringan yang ingin Anda hapus, kemudian klik Edit dan deploy revisi baru.
Klik tab Networking.
Hapus nama tag jaringan yang tidak ingin dikaitkan lagi dengan layanan Anda.
Klik Deploy.
gcloud
Untuk menghapus layanan Anda dari jaringan VPC, jalankan perintah berikut:
gcloud run services update SERVICE_NAME --region=REGION \ --clear-network
Untuk menghapus tag jaringan saja dan menjaga layanan tetap terhubung ke jaringan VPC, jalankan perintah berikut:
gcloud run services update SERVICE_NAME --region=REGION \ --clear-network-tags
Ganti kode berikut:
- SERVICE_NAME: nama layanan Cloud Run Anda.
- REGION: region untuk layanan Cloud Run Anda.
YAML
Untuk menghapus layanan Anda dari jaringan VPC:
Download konfigurasi YAML layanan:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Hapus konten berikut dari file
service.yaml
Anda:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Dengan
- NETWORK: nama jaringan VPC Anda.
- SUBNET: nama subnet Anda.
- Opsional: NETWORK_TAG_NAMES: nama tag jaringan apabila Anda ingin mengaitkannya dengan layanan.
Deploy revisi layanan dengan menjalankan perintah berikut:
gcloud run services replace service.yaml
Untuk menghapus tag jaringan saja dan menjaga layanan tetap terhubung ke jaringan VPC:
Download konfigurasi YAML layanan:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Hapus variabel
tags
dari konten dalam fileservice.yaml
, dengan membiarkan variabelnetwork
dansubnetwork
di tempatnya, seperti ditunjukkan dalam contoh berikut:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
Dengan
- NETWORK: nama jaringan VPC Anda.
- SUBNET: nama subnet Anda.
Deploy revisi layanan dengan menjalankan perintah berikut:
gcloud run services replace service.yaml
Memutus sambungan tugas
Konsol
Untuk menghapus tugas Anda dari jaringan VPC:
Klik tugas yang ingin Anda hapus, lalu klik Edit dan deploy revisi baru.
Klik tab Koneksi.
Hapus Hubungkan ke VPC untuk traffic keluar.
Klik Perbarui.
Untuk memverifikasi bahwa tugas Anda tidak lagi berada di jaringan VPC, klik tab Konfigurasi. Jaringan dan subnet tidak lagi tercantum dalam kartu VPC.
Untuk menghapus tag jaringan saja dan menjaga tugas tetap terhubung ke jaringan VPC:
Klik tugas yang berisi tag jaringan yang ingin Anda hapus, lalu klik Edit dan deploy revisi baru.
Klik tab Koneksi.
Hapus nama tag jaringan yang tidak ingin dikaitkan lagi dengan tugas Anda.
Klik Perbarui.
gcloud
Untuk menghapus tugas Anda dari jaringan VPC, jalankan perintah berikut:
gcloud run jobs update JOB_NAME --region=REGION \ --clear-network
Untuk menghapus tag jaringan saja dan menjaga tugas tetap terhubung ke jaringan VPC, jalankan perintah berikut:
gcloud run jobs update JOB_NAME --region=REGION \ --clear-network-tags
Ganti kode berikut:
- JOB_NAME: nama tugas Cloud Run Anda.
- REGION: region untuk tugas Cloud Run Anda.
YAML
Untuk menghapus tugas Anda dari jaringan VPC:
Download konfigurasi YAML tugas:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Hapus konten berikut dari file
job.yaml
Anda:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
Ganti kode berikut:
- NETWORK: nama jaringan VPC Anda.
- SUBNET: nama subnet Anda.
- Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan jika Anda telah mengaitkannya dengan tugas.
Perbarui tugas dengan menjalankan perintah berikut:
gcloud run jobs replace job.yaml
Untuk menghapus tag jaringan saja dan menjaga tugas tetap terhubung ke jaringan VPC:
Download konfigurasi YAML tugas:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Hapus variabel
tags
dari konten dalam filejob.yaml
, dengan membiarkan variabelnetwork
dansubnetwork
di tempatnya, seperti ditunjukkan dalam contoh berikut:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
Ganti kode berikut:
- NETWORK: nama jaringan VPC Anda.
- SUBNET: nama subnet Anda.
Perbarui tugas dengan menjalankan perintah berikut:
gcloud run jobs replace job.yaml
Memutuskan koneksi kumpulan pekerja
gcloud
Untuk menghapus kumpulan pekerja Anda dari jaringan VPC, jalankan perintah berikut:
gcloud beta run worker-pools update WORKER_POOL --region=REGION \ --clear-network
Untuk menghapus tag jaringan saja dan menjaga kumpulan pekerja tetap terhubung ke jaringan VPC, jalankan perintah berikut:
gcloud beta run worker-pools update WORKER_POOL --region=REGION \ --clear-network-tags
Ganti kode berikut:
- WORKER_POOL: nama kumpulan pekerja Cloud Run Anda.
- REGION: region untuk kumpulan pekerja Cloud Run Anda.
Pemecahan masalah
Tidak dapat menghapus subnet
Untuk menghapus subnet, Anda harus menghapus atau men-deploy ulang semua resource yang menggunakannya terlebih dahulu. Jika Cloud Run menggunakan subnet, putuskan koneksi layanan atau tugas Cloud Run dari jaringan VPC atau pindahkan ke subnet lain sebelum menghapus subnet.
Subnet traffic keluar VPC Langsung kehabisan alamat IPv4
Error berikut terjadi saat Anda mencoba men-deploy:
Instance failed to start because of insufficient free IP addresses in the subnetwork SUBNET_ID when attempting to create an address in the subnetwork. Please consider moving to a subnetwork with more available IP addresses.
Jika subnet jaringan VPC kehabisan alamat IPv4, subnet tersebut akan dicatat ke dalam log oleh Cloud Logging. Jika ini terjadi, Cloud Run tidak dapat memulai instance layanan atau tugas lagi hingga alamat IPv4 lain tersedia.
Untuk mengatasi masalah ini, ikuti strategi kekurangan alamat IP.
Melihat alamat IP yang dialokasikan
Untuk melihat alamat IP yang telah dialokasikan Cloud Run, buka halaman alamat IP di konsol Google Cloud atau jalankan perintah berikut dari Google Cloud CLI:
gcloud compute addresses list
Masalah terkait MTU kustom
Jika Anda mengalami masalah dengan MTU kustom, pastikan Anda menggunakan setelan MTU default untuk Cloud Run.