Kumpulan target adalah grup instance backend yang menerima traffic masuk dari Load Balancer Jaringan passthrough eksternal. Semua instance backend kumpulan target harus berada di region Google Cloud yang sama. Load Balancer Jaringan passthrough eksternal dapat menggunakan layanan backend atau kumpulan target untuk menentukan grup instance backend. Jika Anda membuat Load Balancer Jaringan passthrough eksternal baru, sebaiknya gunakan layanan backend.
Halaman ini menjelaskan opsi konfigurasi untuk backend target pool. Saat aturan penerusan Load Balancer Jaringan passthrough eksternal mengarahkan traffic ke kumpulan target, load balancer memilih instance dari kumpulan target berdasarkan hash dari alamat IP sumber, port sumber, alamat IP tujuan, dan port tujuan.
Jika Anda ingin kumpulan target berisi satu virtual machine (VM), pertimbangkan untuk menggunakan fitur penerusan protokol, bukan load balancing.
Properti kumpulan target
Kumpulan target berfungsi dengan aturan penerusan yang menangani traffic TCP
dan UDP
. Anda harus membuat kumpulan target sebelum dapat menggunakannya dengan aturan
pengalihan.
Kumpulan target menggunakan health check HTTP lama.
Kumpulan target terdiri dari properti berikut:
name
- Nama kumpulan target ini. Nama harus unik dalam project ini, dengan panjang 1-63 karakter dan cocok dengan ekspresi reguler:
[a-z]([-a-z0-9]*[a-z0-9])?
, yang berarti karakter pertama harus berupa huruf kecil, dan semua karakter berikutnya harus berupa tanda hubung, huruf kecil, atau angka, kecuali karakter terakhir, yang tidak boleh berupa tanda hubung. description
- Opsional. Deskripsi yang ditentukan pengguna untuk kumpulan target ini.
region
URL yang sepenuhnya memenuhi syarat untuk region kumpulan target. Region tersebut harus sama dengan region tempat instance backend Anda berada. Contoh:
"region" : "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION"
healthChecks[ ]
Opsional. Daftar opsional health check untuk kumpulan target ini. Hanya satu health check yang dapat dilampirkan ke kumpulan target tertentu. Lihat Pemeriksaan kondisi untuk mengetahui informasi selengkapnya.
instances[ ]
Daftar URL instance yang harus menangani traffic untuk kumpulan target ini. Semua instance harus berada di region yang sama dengan kumpulan target, tetapi instance dapat berada di zona yang berbeda dalam satu region. Contoh:
"instances" : [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2" ]
sessionAffinity
Opsional. Mengontrol metode yang digunakan untuk memilih instance virtual machine backend. Anda hanya dapat menetapkan nilai ini selama pembuatan kumpulan target. Setelah ditetapkan, Anda tidak dapat mengubah nilai ini. Metode hash memilih backend berdasarkan subkumpulan dari 5 nilai berikut:
- IP Sumber / Tujuan
- Port Sumber / Tujuan
- Protokol Lapisan 4 (TCP, UDP)
Hash yang mungkin adalah:
NONE
(yaitu, tidak ada hash yang ditentukan) (default)- Hashing 5-tuple, yang menggunakan IP sumber dan tujuan, port sumber dan tujuan, serta protokol. Setiap koneksi baru dapat berakhir di instance mana pun, tetapi semua traffic untuk koneksi tertentu akan tetap berada di instance yang sama, jika instance tetap responsif.
CLIENT_IP_PROTO
- Hashing 3-tuple, yang menggunakan IP sumber dan tujuan serta protokol. Semua koneksi dari klien akan berakhir di instance yang sama selama menggunakan protokol yang sama dan instance tetap responsif.
CLIENT_IP
- Hashing 2-tuple, yang menggunakan IP sumber dan tujuan. Semua koneksi dari klien akan berakhir di instance yang sama, terlepas dari protokol yang digunakan, selama instance tetap responsif.
Hashing 5-tuple memberikan distribusi traffic yang baik di banyak virtual machine. Namun, sesi kedua dari klien yang sama dapat datang di instance yang berbeda karena port sumber dapat berubah. Jika ingin semua sesi dari klien yang sama menjangkau backend yang sama, selama backend tetap responsif, Anda dapat menentukan opsi
CLIENT_IP_PROTO
atauCLIENT_IP
.Secara umum, jika Anda memilih metode 3-tuple atau 2-tuple, metode tersebut akan memberikan afinitas sesi yang lebih baik daripada metode 5-tuple default, tetapi traffic keseluruhan mungkin tidak didistribusikan secara merata.
Paket UDP yang terfragmentasi: Jika Anda melakukan load balancing pada traffic UDP yang kemungkinan akan terfragmentasi, tetapkan afinitas sesi ke
CLIENT_IP_PROTO
atauCLIENT_IP
. Jangan gunakanNONE
(hashing 5-tuple). Hal ini karena fragmen UDP selain yang pertama tidak membawa nomor port, dan load balancer dapat menghapus fragmen tanpa port. Lihat Load balancing dan paket UDP yang terfragmentasi untuk mengetahui informasi selengkapnya.backupPool
Opsional. URL yang sepenuhnya memenuhi syarat ke resource target pool lain. Kumpulan cadangan adalah kumpulan target yang dirujuk oleh kumpulan target lain. Anda juga harus menentukan
failoverRatio
untuk menggunakan fitur ini. Jika rasio mesin virtual yang sehat di kumpulan target Anda berada di bawahfailoverRatio
, Load Balancer Jaringan passthrough eksternal akan mengirim traffic ke kumpulan cadangan Anda. Anda hanya dapat menyediakan satu kumpulan cadangan per kumpulan target. Kumpulan pencadangan harus berada di region yang sama dengan kumpulan target. Jika rasio instance yang sehat di kumpulan target berada di bawah rasio failover yang dikonfigurasi, Load Balancer Jaringan passthrough eksternal akan menggunakan aturan berikut untuk merutekan traffic Anda:- Jika rasio instance yang responsif terhadap total instance dalam kumpulan target kurang dari rasio failover, traffic akan dikirim ke instance yang responsif dalam kumpulan cadangan.
- Jika rasio instance responsif terhadap total instance dalam kumpulan target kurang dari rasio failover, tetapi tidak ada instance responsif yang tersisa dalam kumpulan cadangan, traffic akan dikirim ke instance responsif yang tersisa dalam kumpulan target.
- Jika kumpulan target tidak kosong dan jika semua instance dalam kumpulan target dan kumpulan cadangan gagal dalam health check, traffic akan dikirim ke semua instance dalam kumpulan target, sebagai upaya terakhir.
- Jika kumpulan target kosong dan jika semua instance dalam kumpulan cadangan gagal dalam health check, traffic akan dikirim ke semua instance dalam kumpulan cadangan, sebagai upaya terakhir.
Hanya satu tingkat failover yang didukung. Misalnya, jika target pool A memiliki cadangan pool B, dan cadangan pool B memiliki cadangan pool C, traffic yang ditujukan untuk target pool A hanya dapat diarahkan ke cadangan pool B dan tidak ke cadangan pool C.
failoverRatio
Opsional. Float antara
0.0
dan1.0
, yang menentukan kapan target pool ini dinyatakan tidak sehat. Misalnya, jika nilai ini ditetapkan ke0.1
, kumpulan target ini akan dinyatakan tidak sehat jika jumlah instance yang sehat kurang dari0.1
(10%). Jika rasio failover adalah0.0
, setidaknya satu backend harus responsif agar kumpulan dianggap responsif. Jika rasio failover ditetapkan ke1.0
, semua instance harus responsif agar kumpulan dianggap responsif. Anda harus menentukannya jika menentukan kolombackupPool
.
Kondisi failover
Kondisi | Koneksi baru akan diarahkan ke |
---|---|
Rasio failover !=0, VM yang responsif di kumpulan target >= FR | kumpulan target |
Rasio failover =0, VM yang sehat di kumpulan target > 0 | kumpulan target |
Rasio failover !=0, VM responsif di target pool < FR, dan setidaknya satu VM di target pool responsif | kumpulan cadangan |
Rasio failover =0, VM yang responsif dalam kumpulan target = 0, dan setidaknya satu VM dalam kumpulan cadangan responsif | kumpulan cadangan |
Setidaknya satu VM berada dalam kumpulan target, dan semua VM dalam kumpulan target tidak responsif, dan semua VM dalam kumpulan cadangan tidak responsif | kumpulan target (upaya terakhir) |
Tidak ada VM di kumpulan target, dan semua VM di kumpulan cadangan tidak responsif | kumpulan cadangan (upaya terakhir) |
Tidak ada VM di kumpulan target, dan tidak ada VM di kumpulan cadangan | Traffic dihapus |
Membuat kumpulan target
Konsol
Target pool tidak dapat dibuat di konsol Google Cloud. Anda dapat membuat target pool menggunakan Google Cloud CLI atau API.
Untuk mempelajari cara membuat Load Balancer Jaringan passthrough eksternal berbasis kumpulan target menggunakan Google Cloud CLI, lihat Menyiapkan Load Balancer Jaringan passthrough eksternal dengan kumpulan target.
gcloud
Untuk menggunakan gcloud compute
guna membuat target pool, gunakan perintah target-pools
create
:
gcloud compute target-pools create TARGET_POOL \ [--backup-pool=BACKUP_POOL] \ [--description=DESCRIPTION] \ [--failover-ratio=FAILOVER_RATIO] \ [--http-health-check=HEALTH_CHECK] \ [--region=REGION] [--session-affinity=SESSION_AFFINITY; default="NONE"]
Ganti kode berikut:
TARGET_POOL
: nama untuk target poolBACKUP_POOL
: nama untuk kumpulan target cadanganDESCRIPTION
: deskripsi kumpulan targetFAILOVER_RATIO
: nilai antara 0,0 dan 1,0, yang menentukan kapan kumpulan target dinyatakan tidak sehatHEALTH_CHECK
: health check untuk target pool iniREGION
: region target poolSESSION_AFFINITY
: metode yang digunakan untuk memilih instance virtual machine backend
API
Untuk membuat kumpulan target di API, buat permintaan HTTP POST
ke
URI berikut:
https://www.googleapis.com/v1/compute/projects/PROJECT_ID/regions/REGION/targetPools { "name": name, "instances": [ "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE-2", ] }
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudZONE
: zona tempat instance kumpulan target beradaINSTANCE
,INSTANCE-2
: instance yang akan ditambahkan ke kumpulan target
Menambahkan atau menghapus instance dari kumpulan target
Konsol
Target pool tidak dapat diedit di konsol Google Cloud. Anda dapat mengedit target pool menggunakan Google Cloud CLI atau API.
gcloud
Untuk menggunakan gcloud compute
guna menambahkan instance ke kumpulan target, gunakan
perintah target-pools add-instances
:
gcloud compute target-pools add-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Ganti kode berikut:
TARGET_POOL
: nama target poolINSTANCE
,INSTANCE-2
: nama instance (atau instance) yang akan ditambahkan ke kumpulan target
Untuk menghapus instance, gunakan
perintah target-pools remove-instances
:
gcloud compute target-pools remove-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Ganti kode berikut:
TARGET_POOL
: nama target poolINSTANCE
,INSTANCE-2
: nama instance (atau instance) yang akan dihapus dari kumpulan target
API
Di API, kirim permintaan POST ke URI berikut:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeInstance https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addInstance
Isi permintaan harus menyertakan URI yang sepenuhnya memenuhi syarat ke instance yang ingin Anda tambahkan atau hapus:
{ "instances": [ {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE"}, {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2"} ] }
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target beradaZONE
: zona tempat instance yang diupdate beradaINSTANCE
,INSTANCE-2
: instance yang akan ditambahkan ke kumpulan target
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API untuk metode
targetPools.addInstance
dan
targetPools.removeInstance
.
Membuat daftar kumpulan target
Konsol
Untuk melihat daftar target pool, gunakan menu lanjutan load balancing.
Di halaman load balancing Lanjutan, buka tab Target pool.
Buka Target pools
Halaman ini menampilkan daftar kumpulan target.
gcloud
Untuk menggunakan gcloud compute
guna mencantumkan target pool yang ada, gunakan
perintah target-pools list
:
gcloud compute target-pools list
Untuk output yang lebih panjang, gunakan perintah describe
dan tentukan
nama kumpulan.
API
Di API, kirim permintaan GET ke URI berikut:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudREGION
: region tempat kumpulan target berada
Menjelaskan kumpulan target
Konsol
Untuk mendapatkan informasi tentang kumpulan target, gunakan menu lanjutan load balancing.
- Di halaman load balancing Lanjutan, buka tab Target pool.
Buka Target pools - Untuk melihat informasi mendetail, klik nama target pool.
gcloud
Untuk menggunakan gcloud compute
guna mendapatkan informasi tentang satu target pool, gunakan
perintah target-pools describe
:
gcloud compute target-pools describe TARGET_POOL
Ganti kode berikut:
TARGET_POOL
: nama target pool
API
Di API, kirim permintaan GET kosong ke URI berikut:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target berada
Mendapatkan status respons instance
Konsol
Untuk mendapatkan status kondisi instance dalam kumpulan target, gunakan menu lanjutan load balancing.
- Di halaman load balancing Lanjutan, buka tab Target pool.
Buka Target pools - Klik nama kumpulan target.
- Halaman Detail kumpulan target mencantumkan semua instance dan status kesehatannya.
gcloud
Untuk menggunakan gcloud compute
guna memeriksa status respons instance saat ini
dalam target pool atau semua instance dalam target pool, Anda dapat menggunakan
perintah gcloud compute target-pools get-health
:
gcloud compute target-pools get-health TARGET_POOL
Ganti kode berikut:
TARGET_POOL
: nama target pool
Perintah ini menampilkan status kesehatan seperti yang ditentukan oleh health check yang dikonfigurasi, baik responsif maupun tidak responsif.
API
Di API, buat permintaan POST HTTP ke URI berikut dengan instance yang ditentukan dalam isi permintaan:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/getHealth { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE" }
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target beradaZONE
: zona tempat instance beradaINSTANCE
: instance yang status health check-nya sedang Anda periksa
Hapus satu kumpulan target
Untuk menghapus kumpulan target, Anda harus memastikan terlebih dahulu bahwa kumpulan target tidak direferensikan oleh aturan penerusan apa pun. Jika aturan penerusan mereferensikan kumpulan target, Anda harus menghapus aturan penerusan untuk menghapus referensi.
Konsol
Untuk menggunakan Konsol Google Cloud guna menghapus target pool, gunakan menu lanjutan Load Balancer.
- Di halaman load balancing Lanjutan, buka tab Target pool.
Buka Target pools - Klik nama kumpulan target.
- Klik Hapus.
- Di jendela Hapus target pool, klik Hapus.
gcloud
Untuk menggunakan gcloud compute
guna menghapus target pool, gunakan
perintah target-pools delete
:
gcloud compute target-pools delete TARGET_POOL
Ganti kode berikut:
TARGET_POOL
: nama target pool yang akan dihapus
API
Di API, kirim permintaan DELETE kosong ke URI berikut:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target berada
Menambahkan atau menghapus health check dari kumpulan target
Objek health check adalah resourcemandiri, global yang dapat dikaitkan atau dibatalkan hubungannya dari kumpulan target mana pun.
Jika kumpulan target tidak memiliki health check terkait, Load Balancer Jaringan passthrough eksternal akan memperlakukan semua instance sebagai responsif dan mengirim traffic ke semua instance dalam kumpulan target. Namun, jika Anda membuat kueri untuk status kondisi kumpulan target tanpa health check, status akan ditampilkan sebagai unhealthy
untuk menunjukkan bahwa kumpulan target tidak memiliki health check. Sebaiknya kumpulan target Anda memiliki pemeriksaan kesehatan terkait untuk membantu Anda mengelola instance.
Load Balancer Jaringan passthrough eksternal menggunakan health check HTTP lama untuk menentukan status instance dalam kumpulan target. Load Balancer Jaringan passthrough eksternal hanya dapat menggunakan health check HTTP lama, bukan health check HTTPS lama.
Konsol
Saat menggunakan konsol Google Cloud, Anda dapat membuat health check HTTP lama saat membuat Load Balancer Jaringan passthrough eksternal dengan backend kumpulan target.
Anda tidak dapat menggunakan halaman Health checks konsol Google Cloud untuk membuat health check lama mandiri.
gcloud
Untuk menggunakan gcloud compute
guna menambahkan health check ke kumpulan target, gunakan
perintah target-pools add-health-checks
:
gcloud compute target-pools add-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Ganti kode berikut:
TARGET_POOL
: nama target poolHEALTH_CHECK
: health check HTTP lama yang akan digunakan dengan kumpulan target ini
Untuk menghapus pemeriksaan kesehatan, gunakan
perintah target-pools remove-health-checks
:
gcloud compute target-pools remove-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Ganti kode berikut:
TARGET_POOL
: nama target poolHEALTH_CHECK
: health check HTTP lama yang akan dihapus dari kumpulan target ini
API
Untuk mengaitkan atau membatalkan pengaitan pemeriksaan kesehatan menggunakan API, buat permintaan HTTP POST
ke URI yang sesuai:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeHealthCheck https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addHealthCheck
Isi permintaan harus berisi pemeriksaan kesehatan untuk mengaitkan atau melepaskan pengaitan:
{ "healthCheck": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/httpHealthChecks/HEALTH_CHECK" }
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target beradaHEALTH_CHECK
: health check HTTP lama yang akan dikaitkan atau dibatalkan tautannya dengan kumpulan target
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API untuk
targetPools.addHealthCheck
dan
targetPools.removeHealthCheck
.
Menambahkan atau menghapus kumpulan target cadangan
Saat pertama kali membuat kumpulan target, Anda dapat memilih untuk menerapkan kumpulan target cadangan yang menerima traffic jika kumpulan target Anda tidak berfungsi.
Jika belum pernah menyiapkan kumpulan target cadangan, Anda juga harus menyiapkan health check agar fitur berfungsi dengan benar.
Konsol
Target pool tidak dapat diedit di konsol Google Cloud. Anda dapat mengedit proxy target menggunakan Google Cloud CLI atau API.
gcloud
Untuk menggunakan gcloud compute
guna memperbarui resource kumpulan cadangan, gunakan
perintah target-pools set-backup
:
gcloud compute target-pools set-backup TARGET_POOL \ --backup-pool=BACKUP_POOL \ --failover-ratio=FAILOVER_RATIO
Ganti kode berikut:
TARGET_POOL
: nama target poolBACKUP_POOL
: nama untuk kumpulan target cadanganFAILOVER_RATIO
: nilai antara 0,0 dan 1,0, yang menentukan kapan kumpulan target dinyatakan tidak sehat
API
Untuk membuat permintaan guna memperbarui atau menghapus kumpulan cadangan melalui API, kirim permintaan POST ke URI berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/setBackup?failoverRatio=FAILOVER_RATIO { "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/BACKUP_POOL" }
Ganti kode berikut:
PROJECT_ID
: project ID Google CloudTARGET_POOL
: nama kumpulan target yang akan diupdateREGION
: region tempat kumpulan target beradaBACKUP_POOL
: nama kumpulan cadangan yang akan dikaitkan dengan kumpulan targetFAILOVER_RATIO
: rasio failover
Jika Anda menentukan target kosong atau tidak menentukan rasio failover, perilaku kumpulan cadangan akan dinonaktifkan untuk kumpulan target ini.
Langkah selanjutnya
- Untuk mengetahui informasi selengkapnya tentang target pool, lihat dokumentasi referensi API untuk
targetPools.setBackup
. - Untuk informasi selengkapnya tentang aturan penerusan, lihat Ringkasan aturan penerusan.