Menggunakan kumpulan target

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 atau CLIENT_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 atau CLIENT_IP. Jangan gunakan NONE (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 bawah failoverRatio, 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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 dan 1.0, yang menentukan kapan target pool ini dinyatakan tidak sehat. Misalnya, jika nilai ini ditetapkan ke 0.1, kumpulan target ini akan dinyatakan tidak sehat jika jumlah instance yang sehat kurang dari 0.1 (10%). Jika rasio failover adalah 0.0, setidaknya satu backend harus responsif agar kumpulan dianggap responsif. Jika rasio failover ditetapkan ke 1.0, semua instance harus responsif agar kumpulan dianggap responsif. Anda harus menentukannya jika menentukan kolom backupPool.

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 pool
  • BACKUP_POOL: nama untuk kumpulan target cadangan
  • DESCRIPTION: deskripsi kumpulan target
  • FAILOVER_RATIO: nilai antara 0,0 dan 1,0, yang menentukan kapan kumpulan target dinyatakan tidak sehat
  • HEALTH_CHECK: health check untuk target pool ini
  • REGION: region target pool
  • SESSION_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 Cloud
  • ZONE: zona tempat instance kumpulan target berada
  • INSTANCE, 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 pool
  • INSTANCE, 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 pool
  • INSTANCE, 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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: region tempat kumpulan target berada
  • ZONE: zona tempat instance yang diupdate berada
  • INSTANCE, 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 Cloud
  • REGION: region tempat kumpulan target berada

Menjelaskan kumpulan target

Konsol

Untuk mendapatkan informasi tentang kumpulan target, gunakan menu lanjutan load balancing.

  1. Di halaman load balancing Lanjutan, buka tab Target pool.
    Buka Target pools
  2. 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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: region tempat kumpulan target berada

Mendapatkan status respons instance

Konsol

Untuk mendapatkan status kondisi instance dalam kumpulan target, gunakan menu lanjutan load balancing.

  1. Di halaman load balancing Lanjutan, buka tab Target pool.
    Buka Target pools
  2. Klik nama kumpulan target.
  3. 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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: region tempat kumpulan target berada
  • ZONE: zona tempat instance berada
  • INSTANCE: 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.

  1. Di halaman load balancing Lanjutan, buka tab Target pool.
    Buka Target pools
  2. Klik nama kumpulan target.
  3. Klik Hapus.
  4. 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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: 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 pool
  • HEALTH_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 pool
  • HEALTH_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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: region tempat kumpulan target berada
  • HEALTH_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 pool
  • BACKUP_POOL: nama untuk kumpulan target cadangan
  • FAILOVER_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 Cloud
  • TARGET_POOL: nama kumpulan target yang akan diupdate
  • REGION: region tempat kumpulan target berada
  • BACKUP_POOL: nama kumpulan cadangan yang akan dikaitkan dengan kumpulan target
  • FAILOVER_RATIO: rasio failover

Jika Anda menentukan target kosong atau tidak menentukan rasio failover, perilaku kumpulan cadangan akan dinonaktifkan untuk kumpulan target ini.

Langkah selanjutnya