Panduan ini menunjukkan cara men-deploy layanan Cloud Run multi-region yang sangat tersedia dengan failover dan failback otomatis untuk traffic eksternal. Anda dapat mengonfigurasi layanan Cloud Run dengan fitur ini dengan menyiapkan NEG Serverless, Load Balancer Aplikasi eksternal global, dan pemeriksaan kesiapan. Untuk informasi selengkapnya, lihat Menyajikan traffic dari beberapa region.
Tujuan
Dalam tutorial ini, Anda akan:
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
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.
Aktifkan Artifact Registry API, Cloud Build API, Cloud Run Admin API, Network Services API, dan Compute Engine API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.- Instal dan lakukan inisialisasi gcloud CLI.
- Perbarui komponen:
gcloud components update
- Tetapkan variabel konfigurasi yang digunakan dalam tutorial ini:
Ganti PROJECT_ID dengan project ID Google Cloud Anda.PROJECT_ID= gcloud config set core/project PROJECT_ID PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") SERVICE=health-example REGION_A=us-west1 REGION_B=europe-west1
Menetapkan peran yang diperlukan
Untuk men-deploy dari sumber dengan build, Anda atau administrator Anda harus memberikan peran IAM berikut kepada akun layanan Cloud Build.
Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build
Cloud Build secara otomatis menggunakan
akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan
resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat membangun sumber Anda, minta administrator Anda untuk memberikan peran Cloud Run Builder (roles/run.builder) ke akun layanan default Compute Engine di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Ganti PROJECT_NUMBER dengan nomor project Google Cloud
Anda, dan PROJECT_ID dengan ID project Google Cloud
Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda,
lihat Membuat
dan mengelola project.
Pemberian peran builder Cloud Run ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk berlaku.
Untuk mendapatkan izin yang diperlukan identitas layanan Anda untuk mengakses file dan bucket Cloud Storage, minta administrator Anda untuk memberi peran Storage Admin (roles/storage.admin) kepada identitas layanan.
Untuk mengetahui detail selengkapnya tentang peran dan izin Cloud Storage, lihat
IAM untuk Cloud Storage.
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Menyiapkan aplikasi contoh
Untuk mengambil contoh kode agar dapat digunakan:
Clone repositori contoh ke komputer lokal Anda:
git clone https://github.com/GoogleCloudPlatform/golang-samplesUbah ke direktori yang memuat kode contoh Cloud Run:
cd golang-samples/run/service-health
Men-deploy layanan Cloud Run di dua region dengan pemeriksaan kesiapan
Pengalihan memerlukan setidaknya dua layanan dari region yang berbeda. Untuk men-deploy layanan dari sumber di dua region berbeda dengan pemeriksaan kesiapan, jalankan perintah berikut:
Deploy layanan
health-exampledius-west1daneurope-west1dari direktori sumber. Anda memerlukan setidaknya satu instance minimum untuk mengonfigurasi kesehatan layanan dengan pemeriksaan kesiapan:gcloud beta run deploy $SERVICE \ --source=. \ --regions=$REGION_A,$REGION_B \ --min=10 \ --readiness-probe httpGet.path="/are_you_ready"Merespon setiap permintaan untuk menginstal API yang diperlukan dengan merespons
yketika diminta. Anda hanya perlu melakukan ini sekali untuk sebuah project. Respons permintaan lainnya dengan menyediakan platform dan region, jika Anda belum menetapkan setelan default untuk permintaan tersebut seperti yang dijelaskan di bagian Sebelum memulai.
Menyiapkan Load Balancer Aplikasi eksternal global
Untuk menyiapkan Load Balancer Aplikasi eksternal global guna merutekan traffic antara
us-west1 dan europe-west1, ikuti
langkah-langkah berikut:
Buat layanan backend:
gcloud compute backend-services create $SERVICE-bs \ --load-balancing-scheme=EXTERNAL_MANAGED \ --globalSiapkan alamat IP eksternal statis global untuk menjangkau load balancer Anda:
gcloud compute addresses create $SERVICE-ip \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --globalBuat peta URL untuk mengarahkan permintaan masuk ke layanan backend:
gcloud compute url-maps create $SERVICE-lb \ --default-service $SERVICE-bsBuat proxy HTTP target untuk mengarahkan permintaan ke peta URL:
gcloud compute target-http-proxies create $SERVICE-hp \ --url-map=$SERVICE-lbBuat aturan penerusan untuk mengarahkan permintaan masuk ke proxy:
gcloud compute forwarding-rules create $SERVICE-fr \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=$SERVICE-ip \ --target-http-proxy=$SERVICE-hp \ --global \ --ports=80
Menambahkan layanan Anda melalui NEG serverless
Untuk menambahkan layanan yang Anda deploy di us-west1 dan
europe-west1 menggunakan NEG Serverless, ikuti langkah-langkah
berikut:
Buat grup endpoint jaringan serverless (NEG) untuk layanan Cloud Run Anda di
us-west1daneurope-west1:gcloud compute network-endpoint-groups create $SERVICE-neg-$REGION_A \ --region $REGION_A \ --network-endpoint-type=serverless \ --cloud-run-service=$SERVICEgcloud compute network-endpoint-groups create $SERVICE-neg-$REGION_B \ --region $REGION_B \ --network-endpoint-type=serverless \ --cloud-run-service=$SERVICETambahkan NEG serverless sebagai backend ke layanan backend di
us-west1daneurope-west1:gcloud compute backend-services add-backend $SERVICE-bs \ --global \ --network-endpoint-group=$SERVICE-neg-$REGION_A \ --network-endpoint-group-region=$REGION_Agcloud compute backend-services add-backend $SERVICE-bs \ --global \ --network-endpoint-group=$SERVICE-neg-$REGION_B \ --network-endpoint-group-region=$REGION_B
Untuk opsi konfigurasi tambahan, lihat Menyiapkan Load Balancer Aplikasi eksternal global dengan Cloud Run.
Menguji failover
Untuk menguji failover guna memastikan keandalan dan ketahanan layanan Cloud Run Anda, ikuti langkah-langkah berikut:
Jalankan perintah berikut untuk mendapatkan alamat IP load balancer Anda:
LBIP=$(gcloud compute addresses describe $SERVICE-ip --global --format='value(address)')Opsional: Kirim permintaan ke load balancer jika layanan Anda memerlukan autentikasi:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $LBIPDapatkan nilai variabel LBIP dengan menjalankan perintah
echo $LBIP. Perintah ini akan menampilkan alamat IP load balancer. Misalnya,11.22.33.44Untuk menguji failover, buka URL
http://LOAD_BALANCER_IPdengan LOAD_BALANCER_IP adalah nilai yang Anda dapatkan pada langkah sebelumnya. Klik tombol aktif/nonaktif untuk wilayah Anda di bagian Wilayah Penayangan. Tindakan ini menetapkan wilayah yang berfungsi dengan baik dan instance yang menyalurkan traffic:
Pembersihan
Agar tidak menimbulkan biaya tambahan pada akun Google Cloud Anda, hapus semua resource yang Anda deploy dengan tutorial ini.
Menghapus project
Jika Anda membuat project baru untuk tutorial ini, hapus project tersebut. Jika Anda menggunakan project yang ada dan perlu mempertahankannya tanpa perubahan yang Anda tambahkan dalam tutorial ini, hapus resource yang Anda buat untuk tutorial.
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di Konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource tutorial
Hapus layanan Cloud Run yang Anda deploy dalam tutorial ini. Layanan Cloud Run tidak menimbulkan biaya hingga menerima permintaan.
Untuk menghapus layanan Cloud Run, jalankan perintah berikut:
gcloud run services delete SERVICE-NAME
Ganti SERVICE-NAME dengan nama layanan Anda.
Anda juga dapat menghapus layanan Cloud Run dari konsolGoogle Cloud .
Hapus konfigurasi region default
gcloudyang Anda tambahkan selama penyiapan tutorial:gcloud config unset run/regionHapus konfigurasi project:
gcloud config unset project
Langkah berikutnya
Pelajari lebih lanjut konfigurasi multiregion di produk Google Cloud lainnya:
Pelajari cara mengonfigurasi health check untuk layanan Cloud Run
Menyiapkan Load Balancer Aplikasi eksternal global dengan Cloud Run