Bagikan melalui


Pemeriksaan kesehatan Azure Load Balancer

Pemeriksaan kesehatan Azure Load Balancer adalah fitur yang mendeteksi status kesehatan instans aplikasi Anda. Ini mengirimkan permintaan ke instans untuk memeriksa apakah mereka tersedia dan menanggapi permintaan. Pemeriksaan kesehatan dapat dikonfigurasi untuk menggunakan protokol yang berbeda seperti TCP, HTTP, atau HTTPS. Ini adalah fitur penting karena membantu Anda mendeteksi kegagalan aplikasi, mengelola beban, dan merencanakan waktu henti.

Azure Load Balancer aturan memerlukan pemeriksaan kesehatan untuk mendeteksi status titik akhir. Konfigurasi respons pemeriksaan kesehatan dan pemeriksaan menentukan instans kumpulan backend mana yang menerima koneksi baru. Gunakan pemeriksaan kesehatan untuk mendeteksi kegagalan aplikasi. Hasilkan respons khusus terhadap pemeriksaan kesehatan. Gunakan pemeriksaan kesehatan untuk kontrol aliran untuk mengelola beban atau waktu henti yang direncanakan. Ketika pemeriksaan kesehatan gagal, load balancer berhenti mengirim koneksi baru ke instans yang tidak sehat masing-masing. Konektivitas keluar tidak terpengaruh, hanya masuk.

Protokol pemeriksaan

Pemeriksaan kesehatan mendukung beberapa protokol. Ketersediaan protokol pemeriksaan kesehatan tertentu bervariasi menurut Load Balancer SKU. Selain itu, perilaku layanan bervariasi menurut Load Balancer SKU seperti yang ditunjukkan dalam tabel ini:

Standard SKU Basic SKU
Protokol pemeriksaan TCP, HTTP, HTTPS TCP, HTTP
Perilaku pemeriksaan tidak berfungsi Semua penyelidikan turun, semua aliran TCP berlanjut. Semua penyelidikan turun, semua aliran TCP kedaluwarsa.

Properti pemeriksaan

Pemeriksaan kesehatan memiliki properti berikut:

Nama properti Pemeriksaan Kesehatan Detail
Nama Nama pemeriksaan kesehatan. Ini adalah nama yang dapat Anda tentukan untuk pemeriksaan kesehatan Anda
Protokol Protokol pemeriksaan kesehatan. Ini adalah jenis protokol yang Anda inginkan untuk digunakan oleh pemeriksaan kesehatan. Opsinya adalah: TCP, HTTP, HTTPS
Port Port pemeriksaan kesehatan. Port tujuan yang Anda inginkan untuk digunakan pemeriksaan kesehatan saat tersambung ke komputer virtual untuk memeriksa kesehatannya
Interval (detik) Interval pemeriksaan kesehatan. Jumlah waktu (dalam detik) antara pemeriksaan yang berbeda pada dua upaya pemeriksaan kesehatan berturut-turut ke komputer virtual
Digunakan oleh Daftar aturan load balancer menggunakan pemeriksaan kesehatan khusus ini. Anda harus memiliki setidaknya satu aturan menggunakan pemeriksaan kesehatan agar efektif

Konfigurasi pemeriksaan

Konfigurasi pemeriksaan kesehatan terdiri dari elemen-elemen berikut:

Konfigurasi Pemeriksaan Kesehatan Detail
Protokol Protokol pemeriksaan kesehatan. Ini adalah jenis protokol yang Anda inginkan untuk digunakan oleh pemeriksaan kesehatan. Opsi yang tersedia adalah: TCP, HTTP, HTTPS
Port Port pemeriksaan kesehatan. Port tujuan yang Anda inginkan untuk digunakan pemeriksaan kesehatan saat terhubung ke komputer virtual untuk memeriksa status kesehatan komputer virtual. Anda harus memastikan bahwa komputer virtual juga mendengarkan port ini (artinya, port terbuka).
Interval Interval pemeriksaan kesehatan. Jumlah waktu (dalam detik) antara upaya pemeriksaan kesehatan berturut-turut ke komputer virtual

Protokol pemeriksaan

Protokol yang digunakan oleh pemeriksaan kesehatan dapat dikonfigurasi ke salah satu opsi berikut: TCP, HTTP, HTTPS.

Skenario probe TCP Pemeriksaan HTTP / HTTPS
Gambaran Umum Pemeriksaan TCP memulai koneksi dengan melakukan jabat tangan TCP terbuka tiga arah dengan port yang ditentukan. Pemeriksaan TCP mengakhiri koneksi dengan jabat tangan TCP empat arah. HTTP dan HTTPS mengeluarkan HTTP GET dengan jalur yang ditentukan. Kedua pemeriksaan ini mendukung jalur relatif untuk HTTP GET. Pemeriksaan HTTPS sama dengan pemeriksaan HTTP dengan penambahan Transport Layer Security (TLS). Pemeriksaan HTTP/HTTPS juga dapat berguna untuk mengimplementasikan logika Anda sendiri untuk menghapus instans dari load balancer jika port pemeriksaan juga merupakan pendengar untuk layanan itu sendiri.
Perilaku kegagalan pemeriksaan Pemeriksaan TCP gagal ketika: 1. Pendengar TCP pada instans tidak merespons sama sekali selama periode waktu habis. Pemeriksaan ditandai berdasarkan jumlah waktu permintaan pemeriksaan habis, yang dikonfigurasi untuk tidak terjawab sebelum menandai pemeriksaan. 2. Pemeriksaan menerima reset TCP dari instans. Pemeriksaan HTTP/HTTPS gagal ketika: 1. Titik akhir pemeriksaan mengembalikan kode respons HTTP selain 200 (misalnya, 403, 404, atau 500). 2. Titik akhir pemeriksaan tidak merespons sama sekali selama interval minimum pemeriksaan dan periode waktu habis 30 detik. Beberapa permintaan pemeriksaan mungkin tidak terjawab sebelum pemeriksaan ditandai sebagai tidak berjalan dan sampai jumlah semua interval waktu habis telah tercapai. 3. Titik akhir pemeriksaan menutup koneksi melalui reset TCP.
Perilaku pemeriksaan Pemeriksaan kesehatan TCP dianggap sehat dan menandai titik akhir backend sebagai sehat ketika: 1. Pemeriksaan kesehatan berhasil sekali setelah sepatu bot VM. 2. Setiap titik akhir backend yang telah mencapai keadaan sehat memenuhi syarat untuk menerima alur baru. Pemeriksaan kesehatan ditandai ketika instans merespons dengan status HTTP 200 dalam periode waktu habis. Pemeriksaan kesehatan HTTP/HTTPS dianggap sehat dan menandai titik akhir backend sebagai sehat ketika: 1. Pemeriksaan kesehatan berhasil sekali setelah sepatu bot VM. 2. Setiap titik akhir backend yang telah mencapai keadaan sehat memenuhi syarat untuk menerima alur baru.

Catatan

Pemeriksaan HTTPS memerlukan penggunaan sertifikat berdasarkan yang memiliki tanda tangan hash minimum SHA256 di seluruh rantai.

Perilaku pemeriksaan tidak berfungsi

Skenario Koneksi TCP Datagram UDP
Pemeriksaan instans tunggal tidak berfungsi Koneksi TCP baru berhasil untuk tetap menjadi titik akhir backend yang sehat. Koneksi TCP yang dibuat ke titik akhir backend ini berlanjut. Alur UDP yang ada berpindah ke instans sehat lain di kumpulan backend.
Semua pemeriksaan instans tidak berfungsi Tidak ada alur baru yang dikirim ke kumpulan backend. Load Balancer Standar memungkinkan alur TCP yang ditetapkan untuk terus mengingat bahwa kumpulan backend memiliki lebih dari satu instans backend. Load Balancer Dasar mengakhiri semua alur TCP yang ada ke kumpulan backend. Semua alur UDP yang ada dihentikan.

Interval probe & waktu habis

Nilai interval menentukan seberapa sering pemeriksaan kesehatan memeriksa respons dari instans kumpulan backend Anda. Jika pemeriksaan kesehatan gagal, instans kumpulan backend Anda segera ditandai sebagai tidak sehat. Jika pemeriksaan kesehatan berhasil pada pemeriksaan sehat berikutnya, Azure Load Balancer menandai instans kumpulan backend Anda sebagai sehat. Pemeriksaan kesehatan mencoba memeriksa port pemeriksaan kesehatan yang dikonfigurasi setiap 5 detik secara default dalam portal Azure, tetapi dapat secara eksplisit diatur ke nilai lain.

Untuk memastikan respons tepat waktu diterima, pemeriksaan kesehatan HTTP/S memiliki batas waktu bawaan. Berikut ini adalah durasi batas waktu untuk pemeriksaan TCP dan HTTP/S:

  • Durasi batas waktu pemeriksaan TCP: N/A (pemeriksaan akan gagal setelah durasi interval pemeriksaan yang dikonfigurasi telah berlalu dan pemeriksaan berikutnya telah dikirim)
  • Durasi batas waktu probe HTTP/S: 30 detik

Untuk pemeriksaan HTTP/S, jika interval yang dikonfigurasi lebih lama dari periode batas waktu di atas, pemeriksaan kesehatan akan habis dan gagal jika tidak ada respons yang diterima selama periode batas waktu. Misalnya, jika pemeriksaan kesehatan HTTP dikonfigurasi dengan interval pemeriksaan 120 detik (setiap 2 menit), dan tidak ada respons pemeriksaan yang diterima dalam 30 detik pertama, pemeriksaan akan mencapai periode waktu habis dan gagal. Ketika interval yang dikonfigurasi lebih pendek dari periode batas waktu di atas, pemeriksaan kesehatan akan gagal jika tidak ada respons yang diterima sebelum periode interval yang dikonfigurasi selesai dan pemeriksaan berikutnya akan segera dikirim.

Panduan desain

  • Ketika Anda merancang model kesehatan untuk aplikasi Anda, periksa port pada titik akhir backend yang mencerminkan kesehatan instans itu dan layanan aplikasi. Port aplikasi dan port pemeriksaan tidak harus sama. Dalam beberapa skenario, mungkin diinginkan agar port probe berbeda dari port yang digunakan aplikasi Anda tetapi umumnya disarankan bahwa ini adalah port yang sama.

  • Ini dapat berguna untuk aplikasi Anda untuk menghasilkan respons pemeriksaan kesehatan, dan memberi sinyal pada load balancer apakah instans Anda harus menerima koneksi baru. Anda dapat memanipulasi respons pemeriksaan untuk membatasi pengiriman koneksi baru ke instans dengan kegagalan dalam pemeriksaan kesehatan. Anda dapat mempersiapkan pemeliharaan aplikasi Anda dan memulai pengeringan koneksi ke aplikasi Anda. Sinyal probe down selalu memungkinkan alur TCP berlanjut hingga batas waktu diam atau penutupan koneksi di Load Balancer Standar.

  • Untuk aplikasi keseimbangan beban UDP, buat sinyal pemeriksaan kesehatan kustom dari titik akhir backend. Gunakan TCP, HTTP, atau HTTPS untuk pemeriksaan kesehatan yang cocok dengan pendengar yang sesuai.

  • Aturan penyeimbangan beban Port HA dengan Standard Load Balancer. Semua port memiliki beban seimbang dan respons pemeriksaan kesehatan tunggal harus mencerminkan status seluruh instans.

  • Jangan menerjemahkan atau proksi pemeriksa kesehatan melalui instans yang menerima pemeriksa kesehatan ke instans lain dalam jaringan virtual Anda. Konfigurasi ini dapat menyebabkan kegagalan dalam skenario Anda. Sebagai contoh: Satu set appliance pihak ketiga disebarkan di kumpulan backend load balancer untuk memberikan skala dan redundansi untuk appliance. Pemeriksaan kesehatan dikonfigurasi untuk memeriksa port proksi appliance pihak ketiga atau diterjemahkan ke mesin virtual lain di belakang appliance. Jika Anda memeriksa port yang sama yang digunakan untuk menerjemahkan atau memproksi permintaan ke komputer virtual lain di belakang appliance, respons pemeriksaan apa pun dari satu komputer virtual menandai appliance. Konfigurasi ini dapat menyebabkan kegagalan kaskade aplikasi. Pemicu dapat menjadi kegagalan pemeriksaan terputus-terputus yang menyebabkan load balancer menandai instans appliance. Tindakan ini dapat menonaktifkan aplikasi Anda. Pemeriksaan kesehatan appliance itu sendiri. Pemilihan pemeriksaan untuk menentukan sinyal kesehatan merupakan pertimbangan penting untuk skenario appliance jaringan virtual (NVA). Konsultasikan dengan vendor aplikasi Anda untuk sinyal kesehatan yang sesuai dengan skenario tersebut.

  • Jika Anda memiliki beberapa antarmuka yang dikonfigurasi di mesin virtual Anda, pastikan Anda menanggapi pemeriksaan pada antarmuka yang Anda terima. Anda mungkin perlu sumber alamat jaringan menerjemahkan alamat ini di VM berdasarkan per antarmuka.

  • Perhatikan bahwa definisi pemeriksaan tidak wajib atau diperiksa saat menggunakan Azure PowerShell, Azure CLI, Templat, atau API. Pengujian validasi pemeriksaan hanya dilakukan saat menggunakan portal Azure.

  • Jika pemeriksaan kesehatan berfluktuasi, load balancer menunggu lebih lama sebelum menempatkan titik akhir backend kembali dalam kondisi sehat. Waktu tunggu ekstra ini melindungi pengguna dan infrastruktur dan merupakan kebijakan yang disengaja.

  • Pastikan instans komputer virtual Anda berjalan. Untuk setiap instans yang berjalan di kumpulan backend, pemeriksaan kesehatan memeriksa ketersediaan. Jika instans dihentikan, instans tidak akan diselimuti hingga dimulai lagi.

  • Jangan konfigurasikan VNet Anda dengan rentang alamat IP milik Microsoft yang berisi 168.63.129.16. Konfigurasi bertabrakan dengan alamat IP pemeriksaan kesehatan dan dapat menyebabkan skenario Anda gagal.

  • Untuk menguji kegagalan pemeriksa kesehatan atau menandai instans individu, gunakan kelompok keamanan jaringan untuk secara eksplisit memblokir pemeriksa kesehatan. Buat aturan NSG untuk memblokir port tujuan atau IP sumber untuk mensimulasikan kegagalan pemeriksaan.

  • Tidak seperti aturan penyeimbangan beban, aturan NAT masuk tidak memerlukan pemeriksaan kesehatan yang melekat padanya.

  • Tidak disarankan untuk memblokir IP atau port pemeriksaan kesehatan Azure Load Balancer dengan aturan NSG. Ini adalah skenario yang tidak didukung dan dapat menyebabkan aturan NSG mengambil efek tertunda, yang mengakibatkan pemeriksaan kesehatan secara tidak akurat mewakili ketersediaan instans backend Anda.

Pemantauan

Load Balancer Standar mengekspos per titik akhir dan status pemeriksaan kesehatan titik akhir backend melalui Azure Monitor. Layanan Azure atau aplikasi mitra lainnya dapat menggunakan metrik ini. Log Azure Monitor tidak didukung untuk Load Balancer Dasar.

Alamat IP sumber pemeriksaan

Agar pemeriksaan kesehatan Azure Load Balancer menandai instans Anda, Anda harus mengizinkan alamat IP 168.63.129.16 di grup keamanan jaringan Azure dan kebijakan firewall lokal apa pun. Tag layanan AzureLoadBalance mengidentifikasi sumber alamat IP ini di grup keamanan jaringan Anda dan mengizinkan lalu lintas pemeriksaan kesehatan secara default. Anda dapat mempelajari lebih lanjut tentang IP ini di sini.

Jika Anda tidak mengizinkan IP sumber pemeriksaan dalam kebijakan firewall Anda, pemeriksaan kesehatan gagal karena tidak dapat menjangkau instans Anda. Pada gilirannya, Azure Load Balancer menandai instans Anda sebagai tidak berfungsi karena kegagalan pemeriksaan kesehatan. Kesalahan konfigurasi ini dapat menyebabkan skenario aplikasi seimbang beban Anda gagal. Semua pemeriksaan kesehatan IPv4 Load Balancer berasal dari alamat IP 168.63.129.16 sebagai sumbernya. Pemeriksaan IPv6 menggunakan alamat lokal tautan (fe80::1234:5678:9abc) sebagai sumbernya. Untuk Azure Load Balancer tumpukan ganda, Anda harus mengonfigurasi Kelompok Keamanan Jaringan agar pemeriksaan kesehatan IPv6 berfungsi.

Batasan

  • Pemeriksaan HTTPS tidak mendukung autentikasi bersama dengan sertifikat klien.

  • Pemeriksaan HTTP tidak mendukung penggunaan nama host untuk memeriksa backend

  • Mengaktifkan tanda waktu TCP dapat menyebabkan pembatasan atau masalah performa lainnya, yang kemudian dapat menyebabkan pemeriksaan kesehatan ke waktu habis.

  • Pemeriksaan kesehatan penyeimbang beban Basic SKU tidak didukung dengan set skala komputer virtual.

  • Pemeriksaan HTTP tidak mendukung pemeriksaan pada port berikut karena masalah keamanan: 19, 21, 25, 70, 110, 119, 143, 220, 993.

Langkah berikutnya