All Products
Search
Document Center

Container Service for Kubernetes:Optimalkan konfigurasi conntrack di Terway

Last Updated:Jul 06, 2025

Connection tracking (conntrack) adalah mekanisme pelacakan koneksi yang memantau dan mencatat status koneksi jaringan, termasuk status TCP seperti SYN, ESTABLISHED, dan CLOSED. Dalam mode Terway Datapath V2 dan IPvlan, conntrack menggunakan peta extended Berkeley Packet Filter (eBPF) untuk menyimpan informasi tentang lalu lintas kontainer. Pada mode lainnya, implementasi Linux conntrack tradisional digunakan. Topik ini menjelaskan cara mengubah ukuran tabel eBPF conntrack untuk performa optimal.

Periksa ukuran tabel conntrack

Ukuran tabel eBPF conntrack bergantung pada kapasitas memori node.

Jalankan perintah berikut untuk melihat ukuran tabel conntrack pada sebuah node:

  1. Ambil nama pod terway-eniip:

# kubectl describe node <nodename>  | grep terway-eniip
  kube-system                 terway-eniip-xxxx         350m (8%)     1100m (28%)  200Mi (3%)       256Mi (3%)     16h
  1. Kueri ukuran tabel conntrack:

# kubectl exec -it -nkube-system terway-eniip-xxxx -c policy -- cilium status --verbose
...
BPF Maps:   dynamic sizing: on (ratio: 0.002500)
  Name                          Size
  Auth                          524288
  Non-TCP connection tracking   65536
  TCP connection tracking       131072
  Endpoint policy               65535
...

Deskripsi parameter:

  • dynamic sizing: on: Mengaktifkan batas atas dinamis untuk peta eBPF. Jika nilainya diatur ke off, Anda dapat mengonfigurasi parameter bpf-map-dynamic-size-ratio untuk mengaktifkan penyesuaian dinamis atau mengonfigurasi parameter bpf-ct-global-any-max, bpf-ct-global-tcp-max, dan bpf-nat-global-max untuk menentukan ukuran tabel yang berbeda.

  • ratio: 0.002500: Ukuran maksimum peta eBPF berdasarkan proporsi tertentu dari total memori sistem.

  • Non-TCP connection tracking: Jumlah entri maksimum dalam tabel conntrack non-TCP.

  • TCP connection tracking: Jumlah entri maksimum dalam tabel conntrack TCP.

Periksa jumlah entri conntrack

Secara default, setiap node mengekspos port metrik Prometheus. Port default adalah 9962. Tabel berikut menjelaskan metrik yang dapat dikumpulkan dengan menggunakan komponen pemantauan.

Metric

Label dan nilai

cilium_datapath_conntrack_gc_entries

family: tipe alamat IP. Nilai valid: ipv4 dan ipv6.

protocol: tipe protokol. Nilai valid: non-TCP dan TCP.

status: status pembersihan. Dengan menggabungkan semua status, Anda dapat memperoleh jumlah entri conntrack sebelum pembersihan. Nilai valid: alived dan deleted.

Ubah port pemantauan default

Parameter

Deskripsi

prometheus-serve-addr

Port mendengarkan Prometheus. Untuk menonaktifkan port, atur nilainya ke \"\".

  • Terway ≥ 1.14.0: dinonaktifkan secara default

  • Terway < 1.14.0: diatur ke :9962 secara default.

Untuk informasi lebih lanjut tentang cara memodifikasi parameter ini, lihat deskripsi parameter cilium_args di Sesuaikan ConfigMap Terway.

Sesuaikan ukuran eBPF conntrack

eBPF conntrack dan Linux conntrack secara fungsional identik. Pengaturan default dapat memenuhi kebutuhan sebagian besar skenario bisnis tanpa perlu konfigurasi tambahan.

Anda perlu mengubah pengaturan berdasarkan kebutuhan bisnis dalam skenario berikut:

  • Sejumlah besar koneksi jangka panjang ada.

  • Pod langsung terpapar ke Internet dan sejumlah besar koneksi setengah terbuka mungkin ada.

Penting

Menyesuaikan ukuran tabel conntrack adalah operasi berisiko tinggi. Sebelum Anda menyesuaikan ukuran tabel conntrack di lingkungan produksi, kami sarankan Anda mengevaluasi efek penyesuaian tersebut. Setelah Anda menyesuaikan ukuran tabel conntrack, lihat bagian Periksa Ukuran Tabel Conntrack dalam topik ini untuk memeriksa apakah penyesuaian tersebut berlaku.

Parameter

Deskripsi

bpf-map-dynamic-size-ratio

ukuran maksimum peta eBPF berdasarkan proporsi tertentu dari total memori sistem.

off: menonaktifkan penskalaan otomatis (ukuran peta tetap)

0.0025: menetapkan batas peta ke 0.0025 dari total memori sistem

bpf-ct-timeout-regular-any

Periode timeout entri dalam tabel conntrack non-TCP.

Nilai default: 1m0s.

bpf-ct-timeout-regular-tcp

Periode timeout entri koneksi yang telah ditetapkan dalam tabel conntrack TCP.

Nilai default: 6h0m0s.

bpf-ct-timeout-regular-tcp-fin

Periode timeout koneksi yang sedang ditutup dalam tabel conntrack TCP.

Nilai default: 10s.

bpf-ct-timeout-regular-tcp-syn

Periode timeout koneksi yang sedang dibuat dalam tabel conntrack TCP.

Nilai default: 1m0s.

bpf-ct-timeout-service-any

Periode timeout entri dalam tabel conntrack layanan non-TCP.

Nilai default: 1m0s.

bpf-ct-timeout-service-tcp

Periode timeout koneksi layanan yang telah ditetapkan dalam tabel conntrack TCP layanan.

Nilai default: 6h0m0s.

bpf-ct-timeout-service-tcp-grace

Periode timeout shutdown layanan dengan lancar dalam tabel conntrack TCP layanan.

Nilai default: 1m0s.

conntrack-gc-interval

Interval pembersihan tabel conntrack.

Nilai default: 5m0s.

Catatan

Parameter ini menentukan interval di mana cilium-agent membersihkan tabel conntrack secara proaktif. Jangan tentukan nilai lebih besar dari nilai default.

Interval pembersihan yang lebih pendek meningkatkan konsumsi CPU oleh cilium-agent tetapi mencegah tabel conntrack penuh. Anda dapat menyesuaikan batas CPU kontainer Terway di konsol Container Service for Kubernetes (ACK).

bpf-ct-global-any-max

Ukuran maksimum tabel conntrack layanan non-TCP.

Catatan

Saat penskalaan dinamis diaktifkan (dynamic sizing: on), kami sarankan Anda menggunakan parameter bpf-map-dynamic-size-ratio untuk menyesuaikan ukuran tabel. Ini membantu Anda mengontrol dan mengoptimalkan mekanisme penyesuaian dinamis BPF maps dengan lebih baik.

bpf-ct-global-tcp-max

Ukuran maksimum tabel conntrack layanan TCP.

Catatan

Saat penskalaan dinamis diaktifkan (dynamic sizing: on), kami sarankan Anda menggunakan parameter bpf-map-dynamic-size-ratio untuk menyesuaikan ukuran tabel. Ini membantu Anda mengontrol dan mengoptimalkan mekanisme penyesuaian dinamis BPF maps dengan lebih baik.

bpf-nat-global-max

Ukuran maksimum tabel NAT BPF.

Catatan

Nilai parameter bpf-nat-global-max harus lebih kecil dari nilai parameter bpf-ct-global-any-max dan bpf-ct-global-tcp-max.

Ukuran default = (Nilai bpf-ct-global-any-max + Nilai bpf-ct-global-tcp-max) × 2/3

Saat penskalaan dinamis diaktifkan (dynamic sizing: on), kami sarankan Anda menggunakan parameter bpf-map-dynamic-size-ratio untuk menyesuaikan ukuran tabel. Ini membantu Anda mengontrol dan mengoptimalkan mekanisme penyesuaian dinamis BPF maps dengan lebih baik.

Untuk informasi lebih lanjut tentang cara memodifikasi parameter ini, lihat deskripsi parameter cilium_args di Sesuaikan ConfigMap Terway.

Dengan bpf-map-dynamic-size-ratio diatur ke 0.0025, ukuran peta untuk kapasitas memori node yang berbeda:

Memori Node

Ukuran CT map (TCP)

Ukuran CT map (any)

Ukuran NAT map

7,5 GiB

131.072

65.536

131.072

16 GiB

151.765

75.882

151.765

30 GiB

284.560

142.280

284.560

240 GiB

2.276.484

1.138.242

2.276.484

Contoh

Blok kode sampel berikut mengatur bpf-map-dynamic-size-ratio ke 0.003 dan bpf-ct-timeout-regular-tcp ke 1h.

10-terway.conf: |
{
  "cniVersion": "0.4.0",
  "name": "terway",
  "capabilities": {"bandwidth": true},
  "eniip_virtual_type": "IPvlan",
  "cilium_args": "--bpf-map-dynamic-size-ratio=0.003 --bpf-ct-timeout-regular-tcp=1h",
  "type": "terway"
}