Pengosongan koneksi adalah proses yang memastikan bahwa permintaan yang sedang berlangsung dan sudah ada diberikan waktu untuk diselesaikan saat instance virtual machine (VM) dihapus dari grup instance atau saat endpoint dihapus dari grup endpoint jaringan (NEG) yang cakupannya bersifat zonal.
Informasi di halaman ini hanya berlaku untuk grup instance dan jenis NEG berikut yang cakupannya bersifat zonal:
Untuk mengaktifkan pengosongan koneksi, Anda menetapkan waktu tunggu pengosongan koneksi di layanan backend. Durasi waktu tunggu harus antara 0 hingga 3600 detik inklusif.
Selama durasi waktu tunggu yang ditentukan, permintaan yang ada ke VM atau endpoint yang dihapus diberi waktu untuk diselesaikan. Load balancer tidak mengirim koneksi baru ke VM atau endpoint yang dihapus. Setelah durasi waktu tunggu tercapai, load balancer akan berhenti mengirim semua traffic ke VM atau endpoint yang dihapus.
Pengosongan koneksi dimulai setiap kali Anda melakukan hal berikut:
- Anda menghapus VM dari grup instance secara manual.
- Anda menghapus instance dari grup instance terkelola dengan melakukan panggilan
resize()
,deleteInstances()
,recreateInstances()
, atauabandonInstances()
. - Grup instance dihapus dari layanan backend. Hal 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 menghapus endpoint dari NEG zonal secara manual.
Diperlukan waktu hingga 60 detik setelah durasi waktu tunggu yang Anda tentukan berakhir agar instance dihentikan.
Jika Anda mengaktifkan pengosongan koneksi di beberapa layanan backend yang menggunakan grup instance atau NEG yang sama, nilai waktu tunggu terbesar akan digunakan. Misalnya, grup instance atau NEG zonal yang sama adalah backend untuk dua layanan backend, dengan satu layanan backend memiliki waktu tunggu pengosongan koneksi sebesar 100 detik, dan layanan backend lainnya memiliki waktu tunggu pengosongan koneksi sebesar 200 detik. Google Cloud menggunakan 200 detik sebagai waktu tunggu pengosongan koneksi yang efektif sehingga koneksi yang ada diizinkan untuk ada 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
- Load Balancer Aplikasi Internal
- Load Balancer Jaringan proxy eksternal
- Load Balancer Jaringan proxy internal
- Load Balancer Jaringan passthrough internal
- Load Balancer Jaringan passthrough Eksternal berbasis layanan backend
Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal mendukung pengosongan koneksi untuk TCP, UDP (Pratinjau), dan protokol non-TCP lainnya.
Pengosongan koneksi juga tersedia untuk layanan backend yang merupakan bagian dari deployment Cloud Service Mesh.
Saat waktu tunggu pengosongan koneksi ditetapkan, dan instance dihapus dari grup instance atau endpoint dihapus dari NEG zonal, load balancer Google Cloud dan Cloud Service Mesh 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 penghentian koneksi yang dikonfigurasi telah 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 yang dibuat sebelumnya, masih diterima di VM yang dihentikan, sehingga menyebabkan error koneksi saat VM tersebut 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 Anda 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.
Mengupdate Cloud Service Mesh
- Buka halaman Cloud Service Mesh di konsol Google Cloud.
Buka Cloud Service Mesh - Klik Nama layanan Anda.
- Klik Konfigurasi lanjutan di bagian bawah layanan Anda.
- Di kolom Connection draining timeout, masukkan nilai dari
0
-3600
. Setelan0
menonaktifkan pengosongan koneksi. - Klik Simpan.
gcloud
Aktifkan pengosongan koneksi di layanan backend baru atau yang sudah ada menggunakan
flag --connection-draining-timeout
. Contoh berikut menunjukkan
cara mengubah waktu tunggu pengosongan koneksi:
Untuk load balancer global atau lintas region yang 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 Anda perbarui.
- REGION: Jika berlaku, region layanan backend yang Anda perbarui
CONNECTION_TIMEOUT_SECS: Jumlah detik yang harus ditunggu 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 memperbarui layanan backend yang ada.
API
Untuk mengaktifkan pengosongan koneksi di API saat membuat atau memperbarui instance atau endpoint, buat permintaan ke URI API masing-masing untuk menyertakan kolom connectionDraining
dalam isi permintaan Anda. Contoh berikut menunjukkan cara menetapkan atribut tersebut dengan mengedit layanan backend yang ada. Untuk informasi tentang atribut lain yang diperlukan, lihat dokumentasi untuk setiap load balancer.
Untuk load balancer global atau lintas region yang 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 Cloud Service Mesh Anda.BACKEND_SERVICE
adalah layanan backend yang digunakan oleh deployment load balancer atau Cloud Service Mesh Anda.CONNECTION_TIMEOUT_SECS
adalah jumlah detik yang harus ditunggu sebelum instance atau endpoint dihapus dari grup instance atau NEG, antara 0 hingga 3600 detik, inklusif. Durasi waktu tunggu ini berlaku untuk semua grup instance atau NEG yang direferensikan oleh layanan backend.
Langkah selanjutnya
Untuk informasi umum tentang layanan backend, lihat Ringkasan layanan backend.