Halaman ini menjelaskan cara menambahkan grup instance terkelola (MIG) yang ada ke layanan backend atau kumpulan target load balancer.
Load balancer mendistribusikan traffic pengguna yang membantu mengurangi risiko mengalami masalah performa di aplikasi Anda. Cloud Load Balancing menggunakan grup instance, baik terkelola maupun tidak terkelola, untuk menyalurkan traffic. Bergantung pada jenis load balancer yang digunakan, Anda dapat menambahkan grup instance ke kumpulan target atau layanan backend.
Untuk informasi tentang cara membuat jenis load balancer tertentu dengan backend MIG, lihat dokumentasi Cloud Load Balancing.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Buka halaman Load balancing di konsol Google Cloud.
- Klik nama layanan backend yang ingin Anda tambahi grup instance terkelola.
- Klik Edit.
- Klik +Add backend.
- Pilih grup instance yang ingin ditambahkan.
- Edit setelan opsional yang ingin Anda ubah.
- Simpan perubahan Anda.
- Buka halaman Target Pools di konsol Google Cloud.
- Klik kumpulan target yang ingin Anda tambahi grup instance.
- Klik tombol Edit.
- Scroll ke bawah ke bagian VM instances, lalu klik Select instance groups.
- Pilih grup instance dari menu drop-down.
- Simpan perubahan Anda.
INSTANCE_GROUP
adalah nama grup instance.TARGET_POOL,..
adalah nama dari satu atau beberapa kumpulan target tempat grup instance ini akan ditambahkan.PROJECT_ID
adalah project ID untuk permintaan ini.REGION
adalah region untuk grup instance.INSTANCE_GROUP
adalah nama grup instance.- Traffic diseimbangkan antara semua port dengan nama port yang sama.
- Sebuah layanan backend tertentu hanya dapat meneruskan traffic ke satu port bernama pada satu waktu.
Jika Anda menggunakan beberapa nomor port untuk port bernama, semua port harus ditujukan untuk aplikasi yang sama.
Misalnya,
http:80,http:8080
berfungsi, tetapihttp:80,http:443
tidak berfungsi karena port 80 umumnya tidak mendukung TLS.instance-group-a
dengan port bernamahttp-port:80
instance-group-b
dengan port bernamahttp-port:79
- Di Konsol Google Cloud, buka halaman Instance groups.
- Klik nama grup instance tempat Anda ingin menentukan port bernama. Halaman dengan properti grup instance akan terbuka.
- Klik Edit untuk mengubah grup instance terkelola ini.
- Di bagian Pemetaan port, klik Add port, lalu masukkan nama port yang diinginkan dan nomor port yang ingin dikaitkan dengan nama tersebut. Jika Anda memerlukan lebih banyak entri, klik Add port lagi.
- Klik Save untuk menyimpan perubahan dan menerapkan port bernama ke instance dalam grup instance terkelola.
- Cobalah tutorial, Menggunakan load balancing untuk aplikasi dengan ketersediaan tinggi.
- Buat template instance yang dapat Anda gunakan untuk grup instance terkelola.
- Buat grup instance terkelola regional.
- Aktifkan autohealing untuk grup instance terkelola Anda.
- Aktifkan penskalaan otomatis untuk grup instance terkelola Anda.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Menambahkan grup instance terkelola ke layanan backend
Layanan backend diperlukan untuk membuat sebagian besar jenis load balancer.
Layanan backend dapat berisi beberapa backend. Grup instance merupakan suatu jenis backend. Instance dalam grup instance merespons traffic dari load balancer. Selanjutnya, layanan backend mengetahui instance yang dapat digunakan, seberapa banyak traffic yang dapat ditangani, dan seberapa banyak traffic yang saat ini ditangani. Selain itu, layanan backend memantau health check dan tidak mengirim koneksi baru ke instance yang tidak responsif.
Gunakan petunjuk ini untuk menambahkan grup instance terkelola ke layanan backend.
Konsol
gcloud
Gunakan perintah
add-backend
:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP \ [--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \ --balancing-mode=BALANCING_MODE
Dukungan mode balancing berbeda-beda berdasarkan jenis load balancer. Untuk mengetahui daftar lengkap, lihat Mode balancing yang tersedia untuk setiap load balancer.
Parameter tambahan diperlukan bergantung pada mode balancing grup instance terkelola. Untuk mengetahui informasi selengkapnya, lihat perintah
add-backend
di SDK.REST
Untuk menambahkan layanan backend menggunakan REST API, lihat backendServices.
Batasan
Load balancing dengan MIG regional tidak mendukung kapasitas target
max-rate
dalam mode balancingRATE
danUTILIZATION
. Untuk mempelajari lebih lanjut panduan penggunaan untuk setiap load balancer, lihat Setelan kapasitas target dan mode balancing.Menambahkan grup instance terkelola ke kumpulan target
Kumpulan target adalah objek yang berisi satu atau beberapa instance virtual machine. Kumpulan target digunakan di Load Balancer Jaringan passthrough eksternal, tempat load balancer meneruskan permintaan pengguna ke kumpulan target yang terpasang. Instance yang merupakan bagian dari kumpulan target tersebut akan melayani permintaan ini dan menampilkan respons. Anda dapat menambahkan grup instance terkelola ke kumpulan target sehingga saat instance ditambahkan atau dihapus dari grup instance, kumpulan target juga otomatis diupdate dengan perubahan tersebut.
Sebelum Anda dapat menambahkan grup instance terkelola ke kumpulan target, kumpulan target harus ada. Untuk informasi selengkapnya, lihat dokumentasi untuk Menambahkan kumpulan target.
Untuk menambahkan grup instance terkelola yang sudah ada ke kumpulan target, ikuti petunjuk berikut. Hal ini akan menyebabkan semua instance VM yang merupakan bagian dari grup instance terkelola ditambahkan ke kumpulan target.
Konsol
gcloud
Gunakan perintah
set-target-pools
:gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \ --target-pools TARGET_POOL,..
dengan:
REST
Panggil metode
setTargetPools
untuk MIG regional atau MIG zona. Contoh:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
dengan:
Isi permintaan harus berisi daftar URI ke kumpulan target yang ingin Anda tambahkan grup ini. Contoh:
{ "targetPools": [ "regions/us-central1/targetPools/example-targetpool-1", "regions/us-central1/targetPools/example-targetpool-2" ] }
Menetapkan port bernama ke grup instance terkelola
Port bernama adalah key-value pair yang mewakili nama dan nomor port. Nama port mewakili nama layanan atau aplikasi. Nomor port mewakili port tempat layanan atau aplikasi berjalan.
Port bernama digunakan oleh Cloud Load Balancing. Load balancer yang bertindak sebagai proxy berlangganan ke satu port bernama dalam konfigurasi layanan backend-nya. Nama port diterjemahkan menjadi nomor port berdasarkan pemetaan port bernama dari setiap backend grup instance.
Misalnya, layanan backend dapat berlangganan port yang bernama
http-port
. Grup instance backend dapat memiliki port bernamahttp-port:80
. Grup instance backend menginstruksikan load balancer untuk mengirim traffic ke VM dalam grup di port 80 menggunakan protokol (seperti TCP). Protokol ini ditetapkan dalam layanan backend load balancer.Port bernama adalah metadata sederhana yang digunakan oleh load balancer proxy. Port bernama tidak mengontrol resource jaringan atau firewall di Compute Engine.
Beberapa nomor port untuk port bernama
Anda dapat menetapkan beberapa port untuk setiap nama layanan. Anda juga dapat menetapkan beberapa nama layanan untuk setiap port.
Perhatikan poin-poin berikut:
Anda dapat menetapkan beberapa port bernama dalam satu grup instance. Sebagai ilustrasi, pertimbangkan contoh layanan backend yang berlangganan port bernama
http-port
, dan yang memiliki dua grup instance backend:Layanan backend ini mengirimkan traffic ke port 80 untuk VM di
instance-group-a
dan port 79 untuk VM diinstance-group-b
.Saat Anda menambahkan grup instance yang sama ke beberapa layanan backend (untuk beberapa load balancer) dan grup instance menyalurkan port yang berbeda di setiap load balancer, jangan tambahkan semua nomor port ke satu port bernama. Sebagai gantinya, buat port bernama yang unik dan petakan port tersebut ke kumpulan port yang harus disalurkan oleh setiap layanan backend.
Sebagai contoh, misalnya Anda memiliki tiga aplikasi, masing-masing dengan load balancer-nya sendiri. Setiap aplikasi memiliki nomor port sendiri: 81 untuk
app1
, 82 untukapp2
, dan 83 untukapp3
. Dengan asumsi bahwa ketiga layanan backend menggunakan grup instance yang sama, tetapkan port bernama untuk grup instance ini sebagai[app1:81, app2:82, app3:83]
.Port bernama dan health check
Agar port bernama dengan beberapa nomor port di layanan backend dapat berfungsi di Load Balancer Aplikasi eksternal atau Load Balancer Aplikasi internal, health check harus memiliki flag
--use-serving-port
, bukan nomor port tertentu. Opsi ini tidak tersedia di konsol Google Cloud. Untuk menetapkan--use-serving-port
, Anda harus menggunakan Google Cloud CLI atau API.Misalnya, Anda memiliki aplikasi yang melakukan load balancing pada traffic di tiga port yang berbeda (81, 82, 83) pada layanan backend yang sama dengan satu grup instance. Anda dapat menetapkan port untuk grup instance ini sebagai
[app:81, 82, 83]
. Health check dalam skenario ini harus memiliki tanda--use-serving-port
.Untuk mengetahui informasi selengkapnya, lihat dokumentasi health check load balancing.
Port bernama dan aturan firewall
Port bernama tidak membuat atau mengubah aturan firewall Google Cloud. Untuk mengizinkan traffic ke VM backend, Anda tetap harus membuat aturan firewall yang diperlukan.
Port bernama dan layanan backend
Selain konfigurasi grup instance, Anda juga harus mengonfigurasi layanan backend. Misalnya, Anda menyetel port yang bernama pada grup instance dengan nama
my-service-name
dan port8888
:gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
Anda harus merujuk ke port bernama di konfigurasi layanan backend dengan
--port-name
pada layanan backend yang ditetapkan kemy-service-name
:gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Membuat port bernama
Konsol
gcloud
Untuk grup instance terkelola, tetapkan satu atau beberapa port bernama menggunakan perintah
instance-groups managed set-named-ports
. Untuk grup yang tidak dikelola, gunakan perintahinstance-groups set-named-ports
.gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
Contoh:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:80,name2:8080
Untuk menetapkan beberapa port ke setiap nama layanan atau beberapa nama untuk setiap layanan, buat lebih dari satu entri untuk setiap nama atau port. Misalnya, jika port
10
,20
, dan80
adalah untuk aplikasi yang sama, Anda dapat menetapkanname1
ke semua port tersebut. Selain itu, Anda dapat menetapkan dua nama,name2
danname3
ke port8080
. Terakhir, Anda dapat menetapkan port9000
kename4
, seperti pada contoh berikut:gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Periksa penetapan port bernama untuk grup instance terkelola menggunakan perintah
get-named-ports
:gcloud compute instance-groups managed get-named-ports INSTANCE_GROUP
NAME PORT name1 10 name1 20 name1 80 name2 8080 name3 8080 name4 9000
REST
instanceGroupManagers
API tidak menawarkan metodesetNamedPorts
API. Sebagai gantinya, gunakaninstanceGroups
API untuk melakukan tugas ini.Buat permintaan ke
instanceGroups
API dan sertakan nama grup instance. Dapatkan nilaifingerprint
saat ini untuk grup instance dengan mendapatkan informasi tentang grup tertentu. Sertakan pasangan nilaifingerprint
dan satu atau beberapa pasangan nilainamedPorts
dalam isi permintaan:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroups/INSTANCE_GROUP/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "PORT_NAME", "port": PORT_NUMBER }, { "name": "PORT_NAME", "port": PORT_NUMBER } ] }
Misalnya, jika port
10
,20
, dan80
adalah untuk aplikasi yang sama, Anda dapat menetapkanname1
ke semua port tersebut. Selain itu, Anda dapat menetapkan dua nama,name2
danname3
ke port8080
. Terakhir, Anda dapat menetapkan port9000
kename4
, seperti pada contoh berikut:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 8080 }, { "name": "name2", "port": 9000 } ] }
Untuk menetapkan beberapa port ke setiap nama layanan, buat beberapa entri untuk nama layanan tersebut. Misalnya, Anda dapat menetapkan port
10
,20
, dan80
kename1
. Juga tetapkan port8080
kename2
.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 10 }, { "name": "name1", "port": 20 } { "name": "name1", "port": 80 } { "name": "name2", "port": 8080 } { "name": "name3", "port": 80 } { "name": "name4", "port": 8080 } ] }
Untuk mencantumkan port bernama yang telah ditetapkan ke grup instance terkelola, buat permintaan
GET
yang mengarah ke grup tersebut:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-