Pengosongan koneksi adalah proses yang memastikan bahwa permintaan yang sedang berlangsung akan diberi waktu untuk diselesaikan ketika VM dihapus dari grup instance atau saat endpoint dihapus dari grup endpoint jaringan (NEG) yang memiliki cakupan zona.
Informasi di halaman ini hanya berlaku untuk grup instance dan jenis NEG berikut yang termasuk dalam cakupan zona:
Untuk mengaktifkan pengosongan koneksi, Anda menetapkan waktu tunggu pengosongan koneksi di layanan backend. Durasi waktu tunggu harus mulai dari 0 hingga 3600 detik.
Untuk durasi waktu tunggu yang ditentukan, permintaan yang ada ke VM atau endpoint yang dihapus diberi waktu hingga selesai. Load balancer tidak mengirim koneksi TCP baru ke VM yang dihapus. Setelah durasi waktu tunggu tercapai, semua koneksi TCP yang tersisa ke VM akan ditutup.
Pengosongan koneksi dimulai setiap kali Anda melakukan tindakan berikut:
- Anda menghapus VM dari grup instance secara manual.
- Anda dapat menghapus instance dari grup instance terkelola dengan melakukan panggilan
resize()
,deleteInstances()
,recreateInstances()
, atauabandonInstances()
. - Grup instance akan dihapus dari layanan backend. Opsi ini tidak didukung untuk Load Balancer Jaringan passthrough internal.
- Google Cloud menghapus instance sebagai bagian dari penskalaan otomatis.
- Anda melakukan update pada grup instance terkelola menggunakan Updater Grup Instance Terkelola.
- Anda dapat menghapus endpoint dari NEG zona secara manual.
Diperlukan waktu hingga 60 detik setelah durasi waktu tunggu yang ditentukan berakhir hingga instance dihentikan.
Jika Anda mengaktifkan pengosongan koneksi di beberapa layanan backend yang memiliki grup instance atau NEG yang sama, nilai waktu tunggu terbesar akan digunakan. Misalnya, grup instance atau NEG zona yang sama adalah backend untuk dua layanan backend, dengan satu layanan backend memiliki waktu tunggu pengosongan koneksi 100 detik, dan layanan backend lainnya memiliki waktu tunggu pengosongan koneksi selama 200 detik. Google Cloud menggunakan 200 detik sebagai waktu tunggu pengosongan koneksi yang efektif sehingga koneksi yang ada dapat aktif selama 200 detik sebelum Google Cloud menghentikannya. Jika backend adalah grup instance terkelola, operasi yang menghapus instance akan tertunda setidaknya 200 detik.
Berikut adalah daftar spesifikasi tentang pengosongan koneksi:
Pengosongan koneksi tersedia untuk layanan backend yang merupakan bagian dari load balancer berikut:
- Load Balancer Aplikasi eksternal global
- Load Balancer Aplikasi eksternal regional
- Load Balancer Aplikasi Klasik
- Load Balancer Jaringan proxy eksternal
- Load Balancer Jaringan proxy internal regional
- Load Balancer Jaringan proxy lintas region
- Load Balancer Aplikasi internal regional
- Load Balancer Aplikasi internal lintas region
- Load Balancer Network passthrough internal
- Load Balancer Jaringan passthrough Eksternal berbasis layanan backend
Pengosongan koneksi juga tersedia untuk layanan backend yang merupakan bagian dari deployment Traffic Director.
Jika waktu tunggu pengosongan koneksi ditetapkan, dan instance dihapus dari grup instance atau endpoint dihapus dari NEG zona, load balancer Google Cloud dan Traffic Director akan berperilaku dengan cara berikut:
Tidak ada koneksi baru yang dikirim ke instance atau endpoint yang dihapus.
Sesi aktif yang mendukung koneksi yang ada ke instance atau endpoint yang dihapus dapat tetap ada hingga waktu tunggu pengosongan koneksi yang dikonfigurasi berlalu. Setelah periode waktu tunggu berakhir, Google Cloud akan mengakhiri koneksi yang ada di instance atau endpoint yang dihapus.
Jika Anda tidak menetapkan waktu tunggu pengosongan koneksi, atau jika waktu tunggu pengosongan koneksi ditetapkan ke nol (0), Google Cloud akan mengakhiri koneksi yang ada di instance atau endpoint yang dihapus secepat mungkin.
Jika menggunakan penggabungan koneksi, Anda mungkin melihat bahwa permintaan baru, yang menggunakan koneksi TCP yang dibuat sebelumnya, masih diterima pada VM yang mulai terkuras, sehingga menyebabkan error koneksi saat VM tersebut pada akhirnya dihapus.
Untuk mengaktifkan pengosongan koneksi, selesaikan langkah-langkah berikut.
Konsol
Memperbarui load balancer
- Buka halaman Load balancing di Konsol Google Cloud.
Buka Load balancing - Klik Edit untuk load balancer atau buat load balancer baru.
- Klik Backend configuration.
- Klik Advanced configurations di bagian bawah layanan backend Anda.
- Di kolom Connection draining timeout, masukkan nilai dari
0
-3600
. Setelan0
menonaktifkan pengosongan koneksi.
Memperbarui Traffic Director
- Buka halaman Traffic Director di konsol Google Cloud.
Buka Traffic Director - Klik Nama layanan Anda.
- Klik Advanced configurations di bagian bawah layanan Anda.
- Di kolom Connection draining timeout, masukkan nilai dari
0
-3600
. Setelan0
menonaktifkan pengosongan koneksi. - Klik Save.
gcloud
Aktifkan pengosongan koneksi pada layanan backend baru atau yang sudah ada dengan menggunakan
tanda --connection-draining-timeout
. Contoh berikut menunjukkan
cara mengubah waktu tunggu pengosongan koneksi:
Untuk load balancer global atau lintas region yang sudah ada:
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --connection-draining-timeout=CONNECTION_TIMEOUT_SECS
Untuk load balancer regional yang sudah ada:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --connection-draining-timeout=CONNECTION_TIMEOUT_SECS
Ganti placeholder dengan nilai yang valid:
- BACKEND_SERVICE: Layanan backend yang sedang Anda update.
- REGION: Jika berlaku, region layanan backend yang diupdate
CONNECTION_TIMEOUT_SECS: Jumlah detik untuk menunggu sebelum koneksi yang ada ke instance atau endpoint dihentikan, antara
0
-3600
detik, inklusif. Setelan0
menonaktifkan pengosongan koneksi. Waktu tunggu pengosongan koneksi berlaku untuk semua backend layanan backend.Anda juga dapat menggunakan perintah
gcloud compute backend-services edit
untuk mengupdate layanan backend yang ada.
API
Untuk mengaktifkan pengosongan koneksi di API saat membuat atau mengupdate instance atau endpoint, buat permintaan ke URI API masing-masing untuk menyertakan kolom connectionDraining
dalam isi permintaan Anda. Contoh berikut
menunjukkan cara menyetel atribut tersebut dengan mengedit layanan backend
yang ada. Untuk mengetahui informasi tentang atribut lain yang diperlukan, lihat dokumentasi untuk setiap load balancer.
Untuk load balancer global atau lintas region yang sudah ada:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
Untuk load balancer regional yang sudah ada:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/backendServices
{
"name": "BACKEND_SERVICE",
"connectionDraining": {
"drainingTimeoutSec": CONNECTION_TIMEOUT_SECS
}
}
dengan:
PROJECT_ID
adalah project ID yang berisi deployment load balancer atau Traffic Director.BACKEND_SERVICE
adalah layanan backend yang digunakan oleh deployment load balancer atau Traffic Director.CONNECTION_TIMEOUT_SECS
adalah jumlah detik untuk menunggu sebelum instance atau endpoint dihapus dari grup instance atau NEG, antara 0 hingga 3.600 detik, inklusif. Durasi waktu tunggu ini berlaku untuk semua grup instance atau NEG yang direferensikan oleh layanan backend.
Langkah selanjutnya
Untuk mengetahui informasi umum tentang layanan backend, lihat Ringkasan layanan backend.