Mengaktifkan pengosongan koneksi

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:

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 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

  1. Buka halaman Load balancing di konsol Trusted Cloud .
    Buka Load balancing
  2. Di tab Load Balancers, untuk load balancer yang ingin Anda update, klik more_vert, lalu klik Edit .
  3. Klik Backend configuration.
  4. Di panel Backend configuration, klik .
  5. Di bagian bawah panel Edit backend service, klik Advanced configurations.
  6. Di kolom Waktu tunggu pengosongan koneksi, masukkan nilai dari 0 - 3600. Setelan 0 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 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. Setelan 0 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 Anda
    • BACKEND_SERVICE: layanan backend yang digunakan oleh load balancer atau deployment Cloud Service Mesh Anda
    • CONNECTION_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.