Pengosongan koneksi adalah proses yang memastikan bahwa permintaan yang sedang berlangsung diberi waktu untuk diselesaikan saat instance virtual machine (VM) dihapus dari grup instance atau saat endpoint dihapus dari grup endpoint jaringan (NEG) yang cakupannya zonal.
Informasi di halaman ini hanya berlaku untuk grup instance dan jenis NEG berikut yang cakupannya zonal:
Pengosongan koneksi dimulai setiap kali Anda melakukan hal berikut:
- Anda secara manual menghapus VM dari grup instance.
- Anda menghapus instance dari grup instance terkelola dengan melakukan panggilan
resize()
,deleteInstances()
,recreateInstances()
, atauabandonInstances()
. - Anda menghapus NIC Dinamis dari VM yang merupakan bagian dari backend grup instance.
- Anda menghapus grup instance atau NEG dari layanan backend. Fitur ini tidak didukung untuk Load Balancer Jaringan passthrough internal dan Load Balancer Jaringan passthrough eksternal.
- Trusted Cloud menghapus instance sebagai bagian dari penskalaan otomatis.
- Anda melakukan update pada grup instance terkelola menggunakan Updater Grup Instance Terkelola.
- Anda secara manual menghapus endpoint dari NEG zonal.
Pengosongan koneksi tidak berlaku saat Anda memutuskan koneksi backend (grup instance atau NEG zona) dari layanan backend load balancer.
Cara kerja penghentian koneksi
Untuk mengaktifkan pengosongan koneksi, Anda menetapkan waktu tunggu pengosongan koneksi pada layanan backend. Durasi waktu tunggu harus dari 0 hingga 3600 detik, inklusif.
Instance dapat dihentikan hingga 60 detik setelah durasi waktu tunggu yang Anda tentukan berakhir.
Berikut adalah daftar spesifikasi tentang pengosongan koneksi:
Penghentian 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 pengurasan koneksi untuk TCP, UDP, dan protokol non-TCP lainnya.
Penghentian koneksi juga tersedia untuk layanan backend yang merupakan bagian dari deployment Cloud Service Mesh.
Jika waktu tunggu pengosongan koneksi ditetapkan, dan instance dihapus dari grup instance atau endpoint dihapus dari NEG zona, Trusted Cloud load balancer dan Cloud Service Mesh akan berperilaku sebagai berikut:
Tidak ada koneksi baru yang dikirim ke instance atau endpoint yang dihapus.
Load Balancer Aplikasi: Selama durasi waktu tunggu yang ditentukan, permintaan yang ada ke VM atau endpoint yang ditandai untuk dihapus diberi waktu untuk diselesaikan. Load balancer tidak mengirim koneksi baru ke VM atau endpoint ini. Setelah durasi waktu tunggu tercapai, load balancer akan berhenti mengirim semua traffic ke VM atau endpoint yang dihapus.
Proxy Network Load Balancer: Selama durasi waktu tunggu yang ditentukan, koneksi TCP yang ada ke VM atau endpoint yang ditandai untuk dihapus akan terus berfungsi selama periode pengurasan koneksi yang dikonfigurasi. Load balancer tidak mengirim koneksi baru ke VM atau endpoint ini. Setelah durasi waktu tunggu tercapai, koneksi TCP yang ada ke VM atau endpoint yang dihapus akan tetap aktif dan proxy akan menutup semua koneksi TCP yang ada dalam waktu 10 menit, yaitu waktu tunggu tidak ada aktivitas default.
Load Balancer Jaringan passthrough: Selama durasi waktu tunggu pengurasan koneksi yang ditentukan, paket yang termasuk dalam koneksi yang ada dirutekan ke VM atau endpoint yang ditandai untuk dihapus. Setelah durasi waktu tunggu tercapai, entri conntrack untuk VM atau endpoint yang dihapus akan dihapus. Paket non-SYN dari koneksi yang ada akan menyebabkan pembuatan entri conntrack baru untuk backend yang berfungsi dengan baik. Saat paket menuju backend baru yang berfungsi dengan baik, backend akan mengirimkan RST ke klien karena tidak memiliki catatan paket yang baru saja diterima. Load Balancer Jaringan passthrough internal dan eksternal sendiri tidak mengirim TCP-RST atau TCP-FIN untuk mengakhiri koneksi yang ada setelah waktu tunggu pengurasan koneksi berakhir.
Jika Anda mengaktifkan penghentian koneksi pada beberapa layanan backend yang menggunakan grup instance atau NEG yang sama, nilai waktu tunggu terbesar akan digunakan. Misalnya, anggaplah grup instance atau NEG zonal 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 200 detik. Trusted Cloud menggunakan 200 detik sebagai waktu tunggu pengosongan koneksi yang efektif sebelum menghentikannya. Jika backend adalah grup instance terkelola, operasi yang menghapus instance akan tertunda setidaknya 200 detik.
Jika Anda tidak menyetel waktu tunggu pengurasan koneksi, atau jika waktu tunggu pengurasan koneksi disetel ke nol (0), Trusted Cloud koneksi yang ada di instance atau endpoint yang dihapus akan diakhiri secepat mungkin.
Jika Anda menggunakan penggabungan koneksi, Anda mungkin melihat bahwa permintaan baru, menggunakan koneksi yang dibuat sebelumnya, masih diterima di VM yang sedang dihentikan, sehingga menyebabkan error koneksi saat VM tersebut akhirnya dihapus.
Mengaktifkan pengosongan koneksi
Untuk mengaktifkan penghentian koneksi, selesaikan langkah-langkah berikut.
Konsol
Memperbarui load balancer
- Buka halaman Load balancing di konsol Trusted Cloud .
Buka Load balancing - Di tab Load Balancers, untuk load balancer yang ingin Anda update, klik more_vert, lalu klik Edit .
- Klik Backend configuration.
- Di panel Backend configuration, klik .
- Di bagian bawah panel Edit backend service, klik Advanced configurations.
- Di kolom Waktu tunggu pengosongan koneksi, masukkan nilai dari
0
-3600
. Setelan0
akan menonaktifkan pengosongan koneksi.
gcloud
Aktifkan penghentian koneksi pada layanan backend baru atau yang sudah ada menggunakan
flag --connection-draining-timeout
. Contoh berikut menunjukkan cara mengubah waktu tunggu pengosongan koneksi:
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 perbaruiREGION
: jika berlaku, region layanan backend yang Anda perbaruiCONNECTION_TIMEOUT_SECS
: jumlah detik yang harus ditunggu sebelum koneksi yang ada ke instance atau endpoint dihentikan, antara0
-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 penghentian 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 menetapkan atribut tersebut dengan mengedit layanan backend yang ada. Untuk mengetahui informasi tentang atribut wajib lainnya, lihat dokumentasi untuk setiap load balancer.
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 } }
Ganti kode berikut:
PROJECT_ID
: project ID yang berisi deployment load balancer atau Cloud Service Mesh AndaBACKEND_SERVICE
: layanan backend yang digunakan oleh load balancer atau deployment Cloud Service Mesh AndaCONNECTION_TIMEOUT_SECS
: jumlah detik yang harus ditunggu 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 berikutnya
Untuk mengetahui informasi umum tentang layanan backend, lihat Ringkasan layanan backend.