Anda menampilkan respons yang lebih cepat kepada pengguna Anda di seluruh dunia dengan men-deploy layanan di beberapa region dan merutekan pengguna Anda ke region terdekat. Melakukan deployment di beberapa region akan memberikan latensi rendah dan ketersediaan yang lebih tinggi jika terjadi pemadaman layanan regional.
Karena layanan Cloud Run di-deploy ke masing-masing region, Anda harus men-deploy layanan ke beberapa region lalu mengonfigurasi load balancing global untuk layanan tersebut.
Anda dapat mengotomatiskan failover lintas regional menggunakan kesehatan layanan Cloud Run.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Siapkan lingkungan pengembangan Cloud Run di Google Cloud project Anda.
- Instal dan lakukan inisialisasi gcloud CLI.
- Pastikan akun Anda memiliki peran IAM berikut:
- Cloud Run Admin (
roles/run.admin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
- Cloud Run Admin (
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya merupakan alamat email Akun Google yang digunakan untuk men-deploy layanan Cloud Run.
- Di daftar Select a role, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu pilih setiap peran tambahan.
- Klik Simpan.
- PROJECT_NUMBER dengan nomor project Google Cloud Anda.
- PROJECT_ID dengan project ID Google Cloud Anda.
- PRINCIPAL dengan akun yang Anda tambahkan binding-nya. Biasanya, alamat email Akun Google yang digunakan untuk men-deploy layanan Cloud Run.
- ROLE dengan peran yang Anda tambahkan ke akun deployer.
- Tinjau halaman harga Cloud Run. Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
- Aktifkan Artifact Registry, Cloud Build, Cloud Run Admin API, Compute Engine, dan Network Services API dengan menjalankan perintah berikut:
- Ulangi langkah-langkah untuk men-deploy ke satu region.
- Deploy layanan multi-region.
Untuk membuat dan men-deploy layanan multi-region, jalankan perintah
gcloud run deploymenggunakan flag--regions:gcloud run deploy
SERVICE_NAME\ --image=IMAGE_URL\ --regions=REGIONSGanti kode berikut:
SERVICE_NAME: Nama layanan multi-region yang ingin Anda deploy.IMAGE_URL: Referensi ke image container, misalnya,us-docker.pkg.dev/cloudrun/container/hello:latest.REGIONS: Daftar beberapa region yang ingin Anda tuju untuk deployment. Contoh,europe-west1,asia-east1.
Buat file YAML untuk layanan Anda, menggunakan atribut
run.googleapis.com/regionsuntuk menetapkan beberapa wilayah tempat Anda ingin men-deploy layanan:apiVersion: serving.knative.dev/v1 kind: Service metadata: name:
SERVICE_NAMEannotations: run.googleapis.com/regions:REGIONSspec: template: spec: containers: - image:IMAGE_URLGanti kode berikut:
SERVICE_NAME: Nama layanan multi-region yang ingin Anda deploy.REGIONS: Daftar beberapa region yang ingin Anda perbarui. Contoh,europe-west1,asia-east1.IMAGE_URL: Referensi ke image container, misalnya,us-docker.pkg.dev/cloudrun/container/hello:latest.
Buat layanan menggunakan perintah berikut:
gcloud run multi-region-services replace service.yaml
Untuk menambahkan layanan multi-region ke wilayah tambahan, gunakan flag
--add-regions:gcloud run multi-region-services update
SERVICE_NAME\ --add-regions=REGIONSUntuk menghapus layanan multi-region dari satu atau beberapa region, gunakan flag
--remove-regions:gcloud run multi-region-services update
SERVICE_NAME\ --remove-regions=REGIONSGanti kode berikut:
SERVICE_NAME: Nama layanan multi-region yang ingin Anda perbarui.REGIONS: Region atau beberapa region tempat Anda ingin menambahkan atau menghapus layanan. Contoh,us-central1,asia-east1.
Untuk memperbarui layanan multi-region yang ada, download konfigurasi YAML-nya:
gcloud run multi-region-services describe SERVICE_NAME --format export > service.yaml
Perbarui atribut
run.googleapis.com/regionsuntuk menambahkan atau menghapus daftar region tempat Anda ingin layanan di-deploy:apiVersion: serving.knative.dev/v1 kind: Service metadata: name:
SERVICE_NAMEannotations: run.googleapis.com/regions:REGIONSGanti kode berikut:
SERVICE_NAME: Nama layanan multi-region yang ingin Anda deploy.REGIONS: Daftar baru beberapa region yang ingin Anda gunakan untuk men-deploy revisi layanan.
Perbarui layanan menggunakan perintah berikut:
gcloud run multi-region-services replace service.yaml
Untuk menghapus layanan multi-region, jalankan perintah
gcloud run multi-region-services delete:gcloud run multi-region-services delete
SERVICE_NAMEGanti
SERVICE_NAMEdengan nama layanan multi-region yang ingin Anda hapus.- Mengotomatiskan failover lintas region dengan kesehatan layanan Cloud Run
- Konfigurasi pendeteksi pencilan untuk mengidentifikasi layanan Cloud Run yang tidak responsif berdasarkan tingkat error HTTP-nya dan membagi beberapa permintaan ke region yang lain.
- Cadangkan alamat IP statis sehingga Anda tidak perlu memperbarui Data DNS
saat Anda membuat ulang load balancer Anda.
Pada perintah di atas, ganti SERVICE_IP dengan nama untuk resource alamat IP (misalnya,gcloud compute addresses create --global SERVICE_IP
myservice-ip).Alamat IP ini adalah alamat IPv4 anycast global yang merutekan ke pusat data Google atau titik kehadiran yang terdekat dengan pengunjung Anda.
-
Buat layanan backend.
gcloud compute backend-services create \ --global BACKEND_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED
Ganti BACKEND_NAME dengan nama yang ingin Anda berikan ke layanan backend. Contoh,
myservice-backend. - Buat peta URL.
gcloud compute url-maps create URLMAP_NAME --default-service=BACKEND_NAME
Ganti URLMAP_NAME dengan nama yang ingin Anda berikan ke peta URL (contohnya
myservice-urlmap). - Buat sertifikat TLS yang terkelola untuk domain Anda guna
menyalurkan traffic HTTPS. (Ganti example.com dengan nama domain Anda.)
gcloud compute ssl-certificates create CERT_NAME \ --domains=example.com
Ganti CERT_NAME dengan nama yang Anda inginkan untuk sertifikat SSL yang terkelola (contohnya
myservice-cert). - Buat proxy HTTPS target.
gcloud compute target-https-proxies create HTTPS_PROXY_NAME \ --ssl-certificates=CERT_NAME \ --url-map=URLMAP_NAME
Ganti HTTPS_PROXY_NAME dengan nama yang ingin Anda berikan ke proxy HTTPS target (contohnya
myservice-https). - Buat aturan penerusan yang menghubungkan resource jaringan yang Anda buat
ke alamat IP.
gcloud compute forwarding-rules create --global FORWARDING_RULE_NAME \ --target-https-proxy=HTTPS_PROXY_NAME \ --address=SERVICE_IP \ --ports=443 \ --load-balancing-scheme=EXTERNAL_MANAGED
Ganti FORWARDING_RULE_NAME dengan nama resource aturan penerusan yang ingin Anda buat. Contoh,
myservice-lb. -
Konfigurasikan alamat IP:
Konfigurasikan nama resource alamat IP Anda menjadi
myservice-service-ip. Anda dapat mengubahnya ke nilai Anda sendiri. Alamat IP ini adalah alamat IPv4 anycast global yang dirutekan ke pusat data Google atau titik kehadiran yang terdekat dengan pengunjung Anda. -
Buat dan konfigurasikan layanan backend:
Resource ini mengonfigurasi layanan backend agar diberi nama
myservice-backend. Anda dapat mengubahnya ke nilai Anda sendiri. -
Konfigurasi peta URL:
Hubungkan resource layanan backend (
myservice-backend) ke resource peta URL baru (myservice-lb-urlmap). Anda dapat mengubahnya ke nilai Anda sendiri. -
Buat sertifikat TLS yang terkelola untuk domain Anda guna menyalurkan traffic HTTPS. Ganti
example.comdengan nama domain Anda di resourcegoogle_compute_managed_ssl_certificate: -
Konfigurasikan proxy HTTPS:
Buat resource
google_compute_target_https_proxydengan nama targetmyservice-https-proxydan hubungkan sertifikat TLS (myservice-ssl-cert) dan resource pemetaan URL (myservice-lb-urlmap) yang dibuat sebelumnya. Anda dapat mengubahnya ke nilai Anda sendiri. -
Konfigurasikan aturan penerusan:
Buat resource
google_compute_global_forwarding_ruledengan nama targetmyservice-https-proxydan hubungkan target proxy HTTPS (myservice-https-proxy) dan resource alamat IP (myservice-service-ip) yang dibuat sebelumnya. Anda dapat mengubahnya ke nilai Anda sendiri. -
Terapkan konfigurasi ini:
Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
-
Buat grup endpoint jaringan untuk layanan Cloud Run di
REGION:gcloud compute network-endpoint-groups create NEG_NAME \ --region=REGION \ --network-endpoint-type=serverless \ --cloud-run-service=SERVICE_NAME
Ganti kode berikut:
-
NEG_NAME dengan nama resource grup endpoint jaringan.
(misalnya,
myservice-neg-uscentral1) - REGION dengan region tempat layanan Anda di-deploy.
- SERVICE_NAME dengan nama layanan Anda.
-
NEG_NAME dengan nama resource grup endpoint jaringan.
(misalnya,
-
Tambahkan grup endpoint jaringan ke layanan backend:
gcloud compute backend-services add-backend --global BACKEND_NAME \ --network-endpoint-group-region=REGION \ --network-endpoint-group=NEG_NAME
Tentukan NEG_NAME yang Anda buat di langkah sebelumnya untuk region.
-
Ulangi langkah-langkah sebelumnya untuk setiap region.
-
Konfigurasikan grup endpoint jaringan dengan nama
myservice-neguntuk layanan Cloud Run bagi setiap region yang ditentukan dalam variabelrun_regions: -
Konfigurasikan layanan backend untuk menyertakan grup endpoint jaringan (
myservice-neg): Temukan alamat IP yang dicadangkan dari load balancer dengan menjalankan perintah berikut:
gcloud compute addresses describe SERVICE_IP \ --global \ --format='value(address)'
Ganti SERVICE_IP dengan nama alamat IP yang Anda buat sebelumnya. Perintah ini mencetak alamat IP ke output.
Update data DNS domain Anda dengan menambahkan kumpulan data
Amenggunakan alamat IP ini.Untuk memeriksa status penerapan data DNS, gunakan utilitas command line
dig:dig A +short example.com
Output akan menampilkan alamat IP yang Anda konfigurasikan di data DNS Anda.
Periksa status penerbitan sertifikat terkelola Anda dengan menjalankan perintah berikut:
gcloud compute ssl-certificates describe CERT_NAME
Ganti CERT_NAME dengan nama yang telah Anda pilih sebelumnya untuk resource sertifikat SSL.
Output menampilkan baris yang berisi
status: ACTIVE.-
Buat peta URL dengan aturan pengalihan.
gcloud compute url-maps import HTTP_URLMAP_NAME \ --global \ --source /dev/stdin <<EOF name: HTTP_URLMAP_NAME defaultUrlRedirect: redirectResponseCode: MOVED_PERMANENTLY_DEFAULT httpsRedirect: True EOF
Ganti HTTP_URLMAP_NAME dengan nama resource peta URL yang akan Anda buat (misalnya,
myservice-httpredirect). -
Buat proxy HTTP target dengan peta URL.
gcloud compute target-http-proxies create HTTP_PROXY_NAME \ --url-map=HTTP_URLMAP_NAME
Ganti HTTP_PROXY_NAME dengan nama proxy HTTP target yang akan Anda buat (misalnya,
myservice-http). -
Buat aturan penerusan di port
80dengan alamat IP yang dicadangkan yang sama.gcloud compute forwarding-rules create --global HTTP_FORWARDING_RULE_NAME \ --target-http-proxy=HTTP_PROXY_NAME \ --address=SERVICE_IP \ --ports=80
Ganti HTTP_FORWARDING_RULE_NAME dengan nama aturan penerusan baru yang akan Anda buat (misalnya,
myservice-httplb). -
Buat resource peta URL dengan aturan pengalihan:
-
Buaa proxy HTTP target dengan resource peta URL yang baru dibuat (
myservice-https-urlmap): -
Buat aturan penerusan di port
80dengan resource alamat IP yang dicadangkan yang sama (myservice-http-proxy): - Anda harus mengonfigurasi setidaknya satu instance minimum tingkat layanan atau tingkat revisi per region untuk menghitung kondisi. Anda juga dapat menggunakan metrik Jumlah instance penampung di Cloud Monitoring untuk memperkirakan jumlah minimum instance yang diperlukan untuk region Anda.
- Pengalihan memerlukan setidaknya dua layanan dari region yang berbeda. Jika tidak, jika
salah satu layanan gagal, pesan error
no healthy upstreamakan ditampilkan. - Kondisi layanan Cloud Run tidak mendukung Load Balancer Aplikasi internal lintas region dengan lebih dari 5 backend NEG serverless.
- Anda tidak dapat mengonfigurasi masker URL atau tag di NEG tanpa server.
- Anda tidak dapat mengaktifkan IAP dari layanan backend atau load balancer. Aktifkan IAP langsung dari Cloud Run.
- Jika layanan Cloud Run dihapus, Cloud Run tidak melaporkan status tidak responsif ke load balancer.
- Memulai instance baru tidak akan menghitung pemeriksaan kesiapan pertama, sehingga permintaan mungkin dialihkan sebentar ke layanan yang baru dimulai sebelum menjadi tidak sehat.
- Kondisi layanan Cloud Run dihitung di semua instance. Revisi tanpa probe dianggap tidak diketahui. Load balancer memperlakukan instance yang tidak diketahui sebagai responsif.
Deploy revisi layanan Cloud Run di beberapa region dengan satu atau beberapa instance minimum. Jalankan perintah berikut untuk menggunakan pemeriksaan kesiapan yang Anda konfigurasi pada langkah sebelumnya:
gcloud beta run deploy
SERVICE_NAME\ --regions=REGION_A,REGION_B\ --min=MIN_INSTANCESGanti kode berikut:
- SERVICE_NAME: nama layanan.
- REGION_A, REGION_B: wilayah yang berbeda untuk
revisi layanan Anda. Misalnya, tetapkan REGION_A ke
us-central1dan REGION_B keeurope-west1. - MIN_INSTANCES: jumlah instance container yang akan tetap aktif, siap menerima permintaan. Anda harus menetapkan nilai minimum ke 1 atau lebih.
Konfigurasi pemeriksaan kesiapan gRPC atau HTTP yang disiapkan di setiap instance container.
Konfigurasikan Load Balancer Aplikasi internal lintas region untuk mengalihkan traffic dari region yang tidak responsif.
Siapkan NEG tanpa Server untuk setiap layanan Cloud Run di setiap region.
Konfigurasi layanan backend untuk terhubung dengan NEG serverless.
Deploy revisi baru di satu region "canary" dengan pemeriksaan kesiapan yang dikonfigurasi.
Kirim sebagian kecil traffic (misalnya, 1%) ke revisi baru.
Gunakan instance minimum bukan nol di tingkat layanan, bukan di tingkat revisi.
Periksa metrik pemeriksaan kesiapan (
run.googleapis.com/container/instance_count_with_readiness) untuk memastikan instance baru dalam kondisi baik.Dengan langkah-langkah inkremental, tingkatkan persentase traffic ke revisi baru. Saat Anda meningkatkan skala, pantau metrik kesehatan layanan Cloud Run regional (
run.googleapis.com/service_health_count), yang digunakan oleh load balancer. Laporan kesehatan layanan Cloud RunUNKNOWNhingga traffic yang cukup dirutekan ke revisi baru.Setelah revisi menerima 100% traffic dan kondisi layanan Cloud Run regional stabil dan baik, ulangi proses ini untuk semua region lainnya.
Untuk memperbarui peta URL Load Balancer Aplikasi eksternal global, hapus NEG dari layanan backend menggunakan flag
--global:gcloud compute backend-services remove-backend
BACKEND_NAME\ --network-endpoint-group=NEG_NAME\ --network-endpoint-group-region=REGION\ --globalGanti kode berikut:
BACKEND_NAME: Nama layanan backend.NEG_NAME: Nama resource grup endpoint jaringan, misalnya,myservice-neg-uscentral1.REGION: Region tempat NEG dibuat dan tempat Anda ingin menghapus layanan. Contoh,us-central1,asia-east1.
Untuk mengonfirmasi bahwa region yang responsif kini melayani traffic, buka https://
<domain-name>.- Pelajari cara mengonfigurasi pemeriksaan kondisi untuk layanan Cloud Run, termasuk pemeriksaan kesiapan.
- Lihat pemeriksaan kesiapan Cloud Run dan kesehatan layanan contoh kode yang ditulis dalam Go.
Memberikan peran
Konsol
gcloud
Untuk memberikan peran IAM yang diperlukan ke akun Anda di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Ganti:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ run.googleapis.com \ compute.googleapis.com \ networkservices.googleapis.com
Deploy layanan ke beberapa region
Parameter penskalaan yang Anda konfigurasi berlaku di beberapa region. Dalam deployment multi-region, misalnya, nilai instance minimum berlaku untuk setiap multi-region.
Anda men-deploy layanan yang sama ke beberapa region menggunakan salah satu metode berikut:
Men-deploy layanan multi-region
Bagian ini menunjukkan cara men-deploy dan mengonfigurasi layanan multi-region dari satu perintah gcloud CLI atau menggunakan file YAML atau Terraform.
gcloud
YAML
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resource google_cloud_run_v2_service
di konfigurasi Terraform Anda.
resource "google_cloud_run_v2_service" "default" {
name = "cloudrun-service-multi-region"
regions = [
"REGION_1",
"REGION_2",
]
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
}
}
Ganti "REGION_1" dan "REGION_2" dengan masing-masing regionGoogle Cloud yang diperlukan. Misalnya, europe-west1
dan us-central1.
Memperbarui layanan multi-region
Bagian ini menunjukkan cara menambahkan atau menghapus region dari layanan multi-region dari satu perintah gcloud CLI atau file YAML.
gcloud
Untuk menambahkan atau menghapus region dari layanan multi-region, jalankan perintah
gcloud run multi-region-services update.
YAML
Menghapus layanan multi-region
Mengonfigurasi Load Balancer Aplikasi eksternal global
Bagian ini menunjukkan cara mengonfigurasi Load Balancer Aplikasi eksternal global dengan domain yang diamankan dengan sertifikat TLS terkelola yang mengarah ke alamat IP anycast global, yang merutekan pengguna ke pusat data Google terdekat yang men-deploy layanan Anda.
Arsitektur yang dijelaskan di bagian berikut tidak secara otomatis merutekan permintaan ke region yang berbeda saat layanan Cloud Run regional menjadi tidak responsif atau menampilkan error.
Untuk meningkatkan ketersediaan layanan multi-regional Anda:
Membuat Load Balancer Aplikasi eksternal global
Pembuatan Load Balancer Aplikasi eksternal global melibatkan pembuatan berbagai resource jaringan dan menghubungkannya bersama-sama:
gcloud
Terraform
Selain langkah-langkah yang dijelaskan di bagian ini, Anda dapat menggunakan Modul Terraform Load Balancer HTTP Global.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Mengonfigurasi grup endpoint jaringan regional
Untuk setiap region tempat Anda men-deploy di langkah sebelumnya, Anda harus membuat grup endpoint jaringan serverless (NEG) dan menambahkannya ke layanan backend menggunakan petunjuk berikut:
gcloud CLI
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Mengonfigurasi data DNS di domain Anda
Untuk mengarahkan nama domain Anda ke aturan penerusan yang Anda buat, perbarui data DNS-nya dengan alamat IP yang Anda buat.
Mengonfigurasi audiens kustom jika menggunakan layanan terautentikasi
Layanan terautentikasi dilindungi oleh IAM. Layanan Cloud Run tersebut memerlukan autentikasi klien yang mendeklarasikan penerima permintaan yang dituju pada waktu pembuatan kredensial (audiens).
Audiens biasanya merupakan URL lengkap layanan target, yang secara default bagi layanan Cloud Run
adalah URL yang dihasilkan dengan akhiran run.app. Namun, dalam deployment multi-region,
klien tidak dapat mengetahui terlebih dahulu ke layanan regional mana permintaan akan dirutekan.
Jadi, untuk deployment multi-region, konfigurasikan layanan Anda untuk menggunakan
audiens kustom.
Menunggu load balancer tersedia
Setelah mengonfigurasi domain dengan alamat IP load balancer, tunggu hingga data DNS diterapkan. Demikian pula, tunggu hingga sertifikat TLS yang terkelola diterbitkan untuk domain Anda dan siap untuk mulai menyalurkan traffic HTTPS secara global.
Mungkin perlu waktu hingga 30 menit agar load balancer Anda mulai menyalurkan traffic.
Setelah siap, buka URL situs Anda dengan awalan https:// untuk mencobanya.
Verifikasi status
Menyiapkan pengalihan HTTP-ke-HTTPS
Secara default, aturan penerusan hanya menangani satu protokol, sehingga
permintaan ke endpoint http:// Anda akan merespons dengan "404 Not Found". Jika Anda
memerlukan permintaan ke URL http:// Anda agar dialihkan ke protokol https://, buat peta URL tambahan dan aturan penerusan menggunakan petunjuk berikut:
gcloud CLI
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk opsi konfigurasi tambahan, lihat Menyiapkan Load Balancer Aplikasi eksternal global dengan Cloud Run.
Mengotomatiskan failover lintas regional dengan kesehatan layanan Cloud Run
Kesehatan layanan Cloud Run meminimalkan gangguan layanan dan mengotomatiskan failover dan failback lintas region. Siapkan layanan Cloud Run multi-region dengan ketersediaan tinggi dengan kemampuan failover dan failback otomatis untuk traffic internal.
Batasan
Batasan berikut berlaku untuk kondisi layanan Cloud Run:
Melaporkan status kondisi regional
Untuk menggabungkan kondisi layanan Cloud Run regional dan melaporkan status sehat atau tidak sehat ke load balancer, lakukan langkah-langkah berikut:
Praktik terbaik
Anda dapat menggunakan kombinasi pemeriksaan kesiapan, pembagian traffic, dan instance minimum untuk melakukan peluncuran bertahap yang aman. Hal ini memungkinkan Anda memverifikasi kondisi revisi baru di satu region "canary" sebelum mempromosikannya, sehingga memastikan load balancer hanya mengirimkan traffic ke backend regional yang responsif.
Proses peluncuran yang direkomendasikan
Anda dapat meluncurkan revisi layanan pada layanan Cloud Run yang ada yang tidak menggunakan pemeriksaan kesiapan atau kesehatan layanan Cloud Run. Ikuti proses ini satu region dalam satu waktu untuk men-deploy revisi baru dengan aman:
Memantau health check
Setelah Anda menyiapkan kesehatan layanan Cloud Run, NEG serverless akan mengumpulkan metrik kesehatan layanan Cloud Monitoring. Anda dapat melihat status kondisi layanan regional yang ada. Diagram berikut menunjukkan cara komponen kesehatan layanan Cloud Run ini merespons permintaan ke layanan Anda:
Jika layanan di suatu region tidak responsif, load balancer akan mengalihkan traffic dari region yang tidak responsif ke region yang responsif. Traffic akan pulih setelah region kembali responsif.
Menggunakan langganan push Pub/Sub terautentikasi dengan deployment multi-region
Layanan Pub/Sub secara default mengirimkan pesan ke endpoint push di region Google Cloud yang sama tempat layanan Pub/Sub menyimpan pesan. Untuk solusi atas perilaku ini, lihat Menggunakan langganan push Pub/Sub yang terautentikasi dengan deployment Cloud Run multi-region.
Mengonfigurasi failover manual
Untuk mengonfigurasi traffic secara manual agar melakukan failover ke region yang responsif, ubah peta URL Load Balancer Aplikasi eksternal global.