Menggunakan kumpulan target

Kumpulan target adalah sekelompok instance backend yang menerima traffic masuk dari Load Balancer Jaringan passthrough eksternal. Semua backend instance 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 kumpulan target. Saat aturan penerusan Load Balancer Jaringan passthrough eksternal mengarahkan traffic ke kumpulan target, load balancer memilih instance dari kumpulan target berdasarkan hash 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 penerusan.

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 dari region kumpulan target. Region tersebut harus merupakan region yang sama dengan 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 ditambahkan ke kumpulan target tertentu. Lihat Pemeriksaan kesehatan untuk mengetahui informasi selengkapnya.

instances[ ]

Daftar URL instance yang harus menangani traffic untuk kumpulan target ini. Semua instance harus berada dalam region yang sama dengan kumpulan target, tetapi instance dapat berada di zona 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 subset dari 5 nilai berikut:

  • IP Sumber / Tujuan
  • Port Sumber / Tujuan
  • Protokol Lapisan 4 (TCP, UDP)

Kemungkinan hash-nya 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 apa 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 mereka 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, selama instance tetap responsif.

Hashing 5-tuple menyediakan distribusi traffic yang baik di banyak virtual machine. Namun, sesi kedua dari klien yang sama mungkin masuk pada instance yang berbeda karena port sumber dapat berubah. Jika Anda 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 ini akan memberikan afinitas sesi yang lebih baik dibandingkan 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 tersebut. Lihat Paket load balancing dan UDP yang terfragmentasi untuk mengetahui informasi selengkapnya.

backupPool

Opsional. URL yang sepenuhnya memenuhi syarat ke resource kumpulan target lainnya. Kumpulan cadangan adalah kumpulan target yang dirujuk oleh kumpulan target lainnya. Anda juga harus menentukan failoverRatio untuk menggunakan fitur ini. Jika rasio virtual machine yang responsif dalam kumpulan target Anda berada di bawah failoverRatio, Load Balancer Jaringan passthrough eksternal akan mengirimkan traffic ke kumpulan cadangan Anda. Anda hanya dapat menyediakan satu kumpulan cadangan per kumpulan target. Kumpulan cadangan harus berada dalam region yang sama dengan kumpulan target. Jika rasio instance responsif dalam kumpulan target Anda 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 di kumpulan cadangan.
  2. Jika rasio instance yang responsif terhadap total instance dalam kumpulan target kurang dari rasio failover, tetapi tidak ada instance responsif yang tersisa di kumpulan cadangan, traffic akan dikirim ke instance responsif yang tersisa di dalam kumpulan target.
  3. Jika kumpulan target tidak kosong dan jika semua instance dalam kumpulan target dan kumpulan cadangan gagal dalam health check-nya, traffic akan dikirimkan ke semua instance dalam kumpulan target, sebagai upaya terakhir.
  4. Jika kumpulan target kosong dan jika semua instance dalam kumpulan cadangan gagal health check-nya, traffic akan dikirim ke semua instance dalam kumpulan cadangan, sebagai upaya terakhir.

Hanya satu tingkat failover yang didukung. Misalnya, jika kumpulan target A memiliki kumpulan cadangan B, dan kumpulan cadangan B memiliki kumpulan cadangan C, traffic yang ditujukan untuk kumpulan target A hanya dapat diarahkan ke kumpulan cadangan B, bukan ke kumpulan cadangan C.

failoverRatio

Opsional. Float antara 0.0 dan 1.0, yang menentukan kapan kumpulan target ini dinyatakan tidak responsif. Misalnya, jika nilai ini disetel ke 0.1, kumpulan target ini akan dinyatakan tidak responsif jika jumlah instance yang responsif kurang dari 0.1 (10%). Jika rasio failover adalah 0.0, setidaknya satu backend harus responsif agar kumpulan tersebut 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 menuju ke
Rasio failover !=0, VM responsif dalam kumpulan target >= FR kumpulan target
Rasio failover =0, VM responsif dalam kumpulan target > 0 kumpulan target
Rasio failover !=0, VM responsif dalam kumpulan target < FR, dan minimal satu VM di kumpulan cadangan responsif kumpulan cadangan
Rasio failover =0, VM responsif dalam kumpulan target = 0, dan minimal satu VM di kumpulan cadangan responsif kumpulan cadangan
Setidaknya satu VM berada dalam kumpulan target, dan semua VM dalam kumpulan target tidak responsif, serta semua VM di kumpulan cadangan tidak responsif kumpulan target (upaya terakhir)
Tidak ada VM yang berada 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 menurun

Membuat kumpulan target

Konsol

Kumpulan target tidak dapat dibuat di Konsol Google Cloud. Anda dapat membuat kumpulan target 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 kumpulan target, 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 kumpulan target
  • 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 responsif
  • HEALTH_CHECK: health check untuk kumpulan target ini
  • REGION: wilayah kumpulan target
  • 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

Kumpulan target tidak dapat diedit di Konsol Google Cloud. Anda dapat mengedit kumpulan target 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 kumpulan target
  • 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 kumpulan target
  • INSTANCE, INSTANCE-2: nama instance (atau instance) yang akan dihapus dari kumpulan target

API

Dalam 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 Anda harus menyertakan URI yang sepenuhnya memenuhi syarat untuk 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 diperbarui
  • REGION: wilayah tempat kumpulan target berada
  • ZONE: zona tempat instance yang diupdate berada
  • INSTANCE, INSTANCE-2: instance yang akan ditambahkan ke kumpulan target

Untuk informasi selengkapnya, lihat dokumentasi referensi API untuk metode targetPools.addInstance dan targetPools.removeInstance.

Membuat daftar kumpulan target

Konsol

Untuk melihat daftar kumpulan target, gunakan menu lanjutan load balancing.

Di halaman load balancing Advanced, buka tab Target pool.
Buka Target pool

Halaman ini menampilkan daftar kumpulan target.

gcloud

Untuk menggunakan gcloud compute guna menampilkan daftar kumpulan target 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: wilayah tempat kumpulan target berada

Menjelaskan kumpulan target

Konsol

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

  1. Di halaman load balancing Advanced, buka tab Target pool.
    Buka Target pool
  2. Untuk melihat informasi mendetail, klik nama kumpulan target.

gcloud

Untuk menggunakan gcloud compute guna mendapatkan informasi tentang satu kumpulan target, gunakan perintah target-pools describe:

  gcloud compute target-pools describe TARGET_POOL

Ganti kode berikut:

  • TARGET_POOL: nama kumpulan target

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 diperbarui
  • REGION: wilayah tempat kumpulan target berada

Mendapatkan status respons instance

Konsol

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

  1. Di halaman load balancing Advanced, buka tab Target pool.
    Buka Target pool
  2. Klik nama kumpulan target.
  3. Halaman Detail kumpulan target mencantumkan semua instance dan status responsnya.

gcloud

Untuk menggunakan gcloud compute guna memeriksa status respons instance saat ini dalam kumpulan target Anda atau semua instance dalam kumpulan target, Anda dapat menggunakan perintah gcloud compute target-pools get-health:

  gcloud compute target-pools get-health TARGET_POOL

Ganti kode berikut:

  • TARGET_POOL: nama kumpulan target

Perintah ini menampilkan status respons seperti yang ditentukan oleh health check yang dikonfigurasi, baik responsif atau 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 diperbarui
  • REGION: wilayah tempat kumpulan target berada
  • ZONE: zona tempat instance berada
  • INSTANCE: instance yang status health checknya Anda periksa

Hapus satu kumpulan target

Untuk menghapus kumpulan target, Anda harus memastikan terlebih dahulu bahwa kumpulan target tersebut tidak direferensikan oleh aturan penerusan apa pun. Jika aturan penerusan merujuk pada kumpulan target, Anda harus menghapus aturan penerusan tersebut untuk menghapus referensi.

Konsol

Untuk menggunakan konsol Google Cloud guna menghapus kumpulan target, gunakan menu lanjutan Load balancing.

  1. Di halaman load balancing Advanced, buka tab Target pool.
    Buka Target pool
  2. Klik nama kumpulan target.
  3. Klik Delete.
  4. Di jendela Delete a target pool, klik Delete.

gcloud

Untuk menggunakan gcloud compute guna menghapus kumpulan target, gunakan perintah target-pools delete:

  gcloud compute target-pools delete TARGET_POOL

Ganti kode berikut:

  • TARGET_POOL: nama kumpulan target 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 diperbarui
  • REGION: wilayah tempat kumpulan target berada

Menambahkan atau menghapus health check dari kumpulan target

Objek health check adalah resource global mandiri yang dapat dikaitkan atau dipisahkan 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 status respons kumpulan target tanpa health check, statusnya akan ditampilkan sebagai unhealthy untuk menunjukkan bahwa kumpulan target tidak memiliki health check. Sebaiknya kumpulan target Anda memiliki health check terkait untuk membantu Anda mengelola instance.

Load Balancer Jaringan passthrough eksternal menggunakan health check HTTP lama untuk menentukan kondisi 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 check konsol Google Cloud untuk membuat health check lama yang 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 kumpulan target
  • HEALTH_CHECK: health check HTTP lama yang akan digunakan dengan kumpulan target ini

Untuk menghapus health check, 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 kumpulan target
  • HEALTH_CHECK: health check HTTP lama yang akan dihapus dari kumpulan target ini

API

Untuk mengaitkan atau membatalkan pengaitan health check 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 Anda harus berisi health check untuk mengaitkan atau membatalkan:

  {
    "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 diperbarui
  • REGION: wilayah tempat kumpulan target berada
  • HEALTH_CHECK: health check HTTP lama yang akan dikaitkan atau dipisahkan dengan kumpulan target

Untuk 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 menjadi tidak responsif.

Jika belum pernah menyiapkan kumpulan target cadangan sebelumnya, Anda juga harus menyiapkan health check agar fitur ini berfungsi dengan benar.

Konsol

Kumpulan target tidak dapat diedit di Konsol Google Cloud. Anda dapat mengedit proxy target menggunakan Google Cloud CLI atau API.

gcloud

Untuk menggunakan gcloud compute guna mengupdate 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 kumpulan target
  • BACKUP_POOL: nama untuk kumpulan target cadangan
  • FAILOVER_RATIO: nilai antara 0,0 dan 1,0, yang menentukan kapan kumpulan target dinyatakan tidak responsif

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 diperbarui
  • REGION: wilayah 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