Mengonfigurasi health check

Google Distributed Cloud (GDC) yang terisolasi menyediakan mekanisme health check yang menentukan apakah instance backend merespons traffic dengan tepat. Dokumen ini menjelaskan cara membuat dan menggunakan health check untuk load balancer.

Kecuali jika dinyatakan lain, Google Cloud health check diimplementasikan oleh tugas software khusus yang terhubung ke backend sesuai dengan parameter yang ditentukan dalam resource health check. Setiap upaya koneksi disebut pemeriksaan. Google Cloud mencatat keberhasilan atau kegagalan setiap pemeriksaan.

Status kondisi setiap backend ditentukan oleh sejumlah pemeriksaan yang berhasil atau gagal berturut-turut yang dapat dikonfigurasi. Artinya, Anda mengonfigurasi jumlah keberhasilan pemeriksaan berturut-turut yang diperlukan untuk menandai backend sebagai responsif dan jumlah kegagalan berturut-turut untuk menandainya sebagai tidak responsif.

Status health ini menentukan apakah backend memenuhi syarat untuk menerima permintaan atau koneksi baru. Backend yang tidak responsif, sebagaimana diidentifikasi oleh health check, tidak akan menerima traffic melalui load balancer. Anda menentukan kriteria untuk penyelidikan yang berhasil. Untuk mengetahui informasi selengkapnya, lihat bagian Cara kerja health check.

Protokol health check

Pemeriksaan kondisi mendukung protokol berikut:

  • TCP
  • HTTP
  • HTTPS

Pilih health check

Health check harus kompatibel dengan jenis load balancer dan jenis backend. Pertimbangkan faktor-faktor berikut saat memilih pemeriksaan kesehatan:

  • Protokol: Protokol yang digunakan GDC untuk menyelidiki backend. Protokol yang didukung adalah TCP, HTTP, dan HTTPS. Protokol TCP berguna untuk health check dasar yang memvalidasi konektivitas ke backend, sedangkan protokol HTTP dan HTTPS menyediakan mekanisme health check yang lebih terperinci untuk VM yang sudah menjalankan workload HTTP atau HTTPS.
  • Spesifikasi port: port yang digunakan GDC dengan protokol untuk memeriksa kondisi backend. Anda harus menentukan port untuk health check.
  • Kategori: health check dapat bersifat global atau zonal. Health check global mencakup semua zona deployment GDC, sedangkan health check per zona sesuai dengan satu zona.

Cara kerja pemeriksaan kondisi

Bagian berikut menjelaskan cara kerja pemeriksaan kondisi.

Probe

Saat membuat health check, Anda menentukan atau menerima setelan default yang mengatur frekuensi setiap pemeriksaan menilai kondisi endpoint terkait. Setelan ini sangat penting karena load balancer berhenti merutekan permintaan ke backend yang dianggap tidak sehat menggunakan kriteria yang Anda konfigurasi. Probe akan tetap melakukan evaluasi dan akan melanjutkan pengiriman traffic ke backend setelah dianggap responsif kembali.

Perlu diperhatikan bahwa setelan health check berlaku secara seragam untuk semua backend dalam layanan backend atau target pool dan tidak dapat dikonfigurasi per backend.

Tanda konfigurasi Penjelasan Nilai default
interval pemeriksaan

check-interval

Waktu (dalam detik) dari awal satu pemeriksaan hingga awal pemeriksaan berikutnya oleh pemeriksa yang sama. 5s (5 detik)
timeoutSec

timeoutSec

Waktu (dalam detik) untuk menunggu pemeriksaan sebelum menyatakan kegagalan. 5s (5 detik)
healthyThreshold

healthyThreshold

Jumlah pemeriksaan berurutan yang harus berhasil agar endpoint dianggap responsif. 2
unhealthyThreshold

unhealthyThreshold

Jumlah pemeriksaan berurutan yang harus gagal agar endpoint dianggap tidak responsif. 2

Kriteria keberhasilan untuk health check HTTP dan HTTPS

Untuk health check HTTP dan HTTPS, kode status HTTP 200 (OK) diperlukan agar respons berhasil sebelum health check mencapai batas waktu. Kode respons HTTP lainnya, termasuk pengalihan (misalnya, 301, 302), dianggap tidak sehat.

Selain mewajibkan kode respons HTTP 200 (OK), Anda dapat:

  • Konfigurasi setiap pemeriksa health check untuk mengirim permintaan HTTP ke jalur permintaan tertentu, bukan jalur permintaan default,/.
  • Konfigurasi setiap pemeriksa health check untuk memeriksa keberadaan string respons yang diharapkan dalam isi respons HTTP. String respons yang diharapkan hanya boleh terdiri dari karakter ASCII byte tunggal yang dapat dicetak, yang berada dalam 1.024 byte pertama isi respons HTTP.

Tabel berikut mencantumkan kombinasi valid kolom requestPath dan response yang tersedia untuk health check HTTP dan HTTPS.

Flag konfigurasi Perilaku pemeriksa Kriteria sukses
RequestPath maupun Response tidak ditentukan Prober menggunakan / sebagai jalur permintaan. Khusus kode respons HTTP 200 (OK).
RequestPath dan Response ditentukan Prober menggunakan jalur permintaan yang dikonfigurasi. Kode responsHTTP 200 (OK)dan hingga 1.024 karakter ASCII pertama dari isi respons HTTP harus cocok dengan string respons yang diharapkan.
Hanya Response yang ditentukan Prober menggunakan / sebagai jalur permintaan. Kode responsHTTP 200 (OK)dan hingga 1.024 karakter ASCII pertama dari isi respons HTTP harus cocok dengan string respons yang diharapkan.
Hanya RequestPath yang ditentukan Prober menggunakan jalur permintaan yang dikonfigurasi. Khusus kode respons HTTP 200 (OK).

Kriteria keberhasilan untuk health check TCP

Health check TCP memiliki kriteria keberhasilan dasar berikut:

  • Untuk health check TCP, pemeriksa health check harus berhasil membuka koneksi TCP ke backend sebelum waktu tunggu health check berakhir.
  • Untuk pemeriksaan kondisi TCP, koneksi TCP harus ditutup dengan salah satu cara berikut:
    • Dengan penguji health check yang mengirimkan paket FIN atau RST (reset).
    • Dengan backend mengirimkan paket FIN.
    • Jika backend mengirim paket TCP RST, pemeriksaan mungkin dianggap gagal jika pemeriksa health check telah mengirim paket FIN.

Sebelum memulai

Untuk mengonfigurasi pemeriksaan health check, Anda harus memiliki hal berikut:

  • Memiliki project yang Anda konfigurasi load balancernya. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
  • Peran identitas dan akses yang diperlukan:

    • Minta Admin IAM Organisasi Anda untuk memberi Anda peran Load Balancer Admin (load-balancer-admin).
    • Untuk ILB global, minta Admin IAM Organisasi Anda untuk memberi Anda peran Global Load Balancer Admin (global-load-balancer-admin). Untuk mengetahui informasi selengkapnya, lihat Deskripsi peran standar.

Membuat dan mengelola health check

GDC mendukung health check global dan per zona.

HealthCheck API

Anda dapat mengonfigurasi objek HealthCheck sebagai global atau zonal. Objek HealthCheck global digunakan untuk konfigurasi load balancer global, sedangkan objek HealthCheck zonal digunakan untuk konfigurasi load balancer zonal. Kedua jenis memiliki nama dan spesifikasi yang sama. Namun, keduanya menggunakan nilai apiVersion dan server API yang berbeda:

Anda juga dapat menggunakan gdcloud CLI untuk membuat dan mengelola health check.

Buat HealthCheck global

Contoh berikut menunjukkan cara membuat HealthCheck menggunakan API:

  kubectl --kubeconfig GLOBAL_ORG_ADMIN_CLUSTER_KUBECONFIG apply -f - <<EOF 
  apiVersion: networking.global.gdc.goog/v1 
  kind: HealthCheck 
  metadata: 
    namespace: PROJECT 
    name: my-hc 
  spec: 
    httpHealthCheck: 
      port: PORT 
      host: HOST 
      requestPath: requestPath 
      response: responseT 
  EOF

Buat HealthCheck zona

Contoh berikut menunjukkan cara membuat HealthCheck menggunakan API:

  kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF 
  apiVersion: networking.gdc.goog/v1
  kind: HealthCheck
  metadata:
    namespace: PROJECT
    name: my-hc
  spec:
    httpHealthCheck:
      port: PORT
      host: HOST
      requestPath: requestPath 
      response: response 
  EOF 

Untuk menautkan health check ke load balancer, lihat hal berikut:

Verifikasi Konfigurasi

Untuk memastikan konfigurasi sudah benar, verifikasi kondisi Ready objek HealthCheck. Kondisi ini menunjukkan adanya error konfigurasi. Selain itu, konfirmasi bahwa kolom secara akurat mencerminkan setelan HealthCheck yang diperlukan.

Catatan penggunaan tambahan

Bagian berikut menyertakan catatan tambahan tentang penggunaan health check di Google Cloud.

Sertifikat dan health check

Untuk protokol seperti HTTPS, yang mewajibkan sertifikat di backend Anda,

  • Sertifikat dapat ditandatangani sendiri atau berasal dari certificate authority (CA) mana pun.
  • Sertifikat yang sudah tidak berlaku atau yang memiliki tanggal mendatang dapat diterima.

Header

Saat mengonfigurasi health check untuk protokol HTTP atau HTTPS, Anda dapat menentukan header HTTP Host menggunakan tanda --host.

Penting untuk diperhatikan bahwa load balancer menambahkan header permintaan kustom yang Anda konfigurasi hanya ke permintaan klien, bukan ke pemeriksaan health check. Oleh karena itu, jika backend Anda memerlukan header tertentu untuk otorisasi yang tidak ada dalam paket health check, health check mungkin gagal.

Contoh health check

Jika health check dikonfigurasi dengan parameter berikut:

  • Interval: 30 detik
  • Waktu tunggu: 5 detik
  • Protokol: HTTP
  • Ambang batas tidak responsif: 2 (default)
  • Ambang batas responsif: 2 (default)

Health check akan berfungsi sebagai berikut:

  • Setiap pemeriksa health check akan:
    1. Mulai koneksi HTTP dari alamat IP sumber ke instance backend setiap 30 detik.
    2. Tunggu hingga lima detik agar kode status HTTP 200 (OK) ditampilkan (kriteria keberhasilan yang ditetapkan untuk protokol HTTP dan HTTPS).
  • Backend dianggap tidak responsif jika setidaknya satu sistem pemeriksaan health check melakukan hal berikut:
    1. Tidak menerima respons HTTP 200 (OK) untuk dua pemeriksaan berturut-turut karena koneksi ditolak, waktu tunggu koneksi habis, atau waktu tunggu soket habis.
    2. Menerima dua respons berturut-turut yang tidak sesuai dengan kriteria keberhasilan khusus protokol.
  • Backend dianggap responsif jika setidaknya satu sistem pemeriksaan health check menerima dua respons berturut-turut yang memenuhi kriteria keberhasilan khusus protokol.

Dalam contoh ini, setiap pemeriksa memulai koneksi setiap 30 detik. Tiga puluh detik berlalu di antara upaya koneksi prober, terlepas dari durasi waktu tunggu (apakah koneksi mengalami waktu tunggu atau tidak). Dengan kata lain, waktu tunggu harus selalu kurang dari atau sama dengan interval, dan waktu tunggu tidak pernah menambah interval.

Batasan

  1. Health check GDC hanya akan melayani endpoint VM.
  2. Load balancer dengan health check tidak dapat dikonfigurasi dengan pod dan VM sebagai backend campuran. Load balancer hanya boleh terdiri dari pod atau VM sebagai endpoint-nya. Mulai sekarang, load balancer hanya boleh terdiri dari pod atau VM sebagai endpoint-nya.
  3. Kemampuan untuk mengubah load balancer dan health check terkait belum didukung.