Sesuaikan ukuran tabel conntrack eBPF dan pengaturan timeout untuk menangani beban kerja dengan koneksi tinggi di Terway.
Periksa ukuran tabel conntrack
Ukuran tabel conntrack eBPF bergantung pada kapasitas memori node.
Untuk melihat ukuran tabel conntrack pada suatu node:
-
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
-
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
...
Parameter:
-
dynamic sizing: on: peta eBPF menggunakan batas atas dinamis. Jika diatur keoff, konfigurasikanbpf-map-dynamic-size-ratiountuk penyesuaian dinamis, atau tetapkan nilaibpf-ct-global-any-max,bpf-ct-global-tcp-max, danbpf-nat-global-maxuntuk ukuran tetap. -
ratio: 0.002500: ukuran maksimum peta eBPF sebagai proporsi dari total memori sistem. -
Non-TCP connection tracking: jumlah maksimum entri dalam tabel conntrack non-TCP. -
TCP connection tracking: jumlah maksimum entri dalam tabel conntrack TCP.
Periksa jumlah entri conntrack
Secara default, setiap node mengekspos metrik Prometheus pada port 9962.
|
Metric |
Label dan nilai |
|
cilium_datapath_conntrack_gc_entries |
family: tipe alamat IP. Nilai yang valid: protocol: tipe protokol. Nilai yang valid: status: status pembersihan. Gabungkan semua status untuk mendapatkan jumlah entri conntrack sebelum pembersihan. Nilai yang valid: |
Ubah port pemantauan default
|
Parameter |
Deskripsi |
|
prometheus-serve-addr |
Port pendengar Prometheus. Atur ke
|
Untuk mengubah parameter ini, lihat cilium_args di Sesuaikan Parameter Konfigurasi Terway.
Sesuaikan ukuran conntrack eBPF
Conntrack eBPF dan conntrack Linux secara fungsional identik. Pengaturan default sesuai untuk sebagian besar skenario.
Ubah pengaturan dalam skenario berikut:
-
Terdapat banyak koneksi berdurasi panjang.
-
Pod diekspos ke Internet, dan banyak koneksi half-open mungkin ada.
Menyesuaikan ukuran tabel conntrack berisiko tinggi. Evaluasi dampaknya sebelum menerapkan perubahan di lingkungan produksi. Setelah penyesuaian, verifikasi hasilnya seperti dijelaskan dalam Periksa ukuran tabel conntrack.
|
Parameter |
Deskripsi |
|
bpf-map-dynamic-size-ratio |
Ukuran maksimum peta eBPF sebagai proporsi dari total memori sistem.
|
|
bpf-ct-timeout-regular-any |
Timeout untuk entri conntrack non-TCP. Nilai default: |
|
bpf-ct-timeout-regular-tcp |
Timeout untuk entri conntrack TCP yang sudah terbentuk. Nilai default: |
|
bpf-ct-timeout-regular-tcp-fin |
Timeout untuk entri conntrack TCP yang sedang ditutup. Nilai default: |
|
bpf-ct-timeout-regular-tcp-syn |
Timeout untuk entri conntrack TCP yang sedang dibentuk. Nilai default: |
|
bpf-ct-timeout-service-any |
Timeout untuk entri conntrack layanan non-TCP. Nilai default: |
|
bpf-ct-timeout-service-tcp |
Timeout untuk entri conntrack layanan TCP yang sudah terbentuk. Nilai default: |
|
bpf-ct-timeout-service-tcp-grace |
Timeout untuk shutdown layanan TCP yang graceful. Nilai default: |
|
conntrack-gc-interval |
Interval pembersihan tabel conntrack. Nilai default: Catatan
Interval di mana cilium-agent membersihkan tabel conntrack. Jangan melebihi nilai default. Interval yang lebih pendek meningkatkan penggunaan CPU cilium-agent tetapi mencegah tabel conntrack penuh. Sesuaikan batas CPU kontainer Terway di Konsol ACK. |
|
bpf-ct-global-any-max |
Ukuran maksimum tabel conntrack layanan non-TCP. Catatan
Jika penskalaan dinamis diaktifkan, gunakan |
|
bpf-ct-global-tcp-max |
Ukuran maksimum tabel conntrack layanan TCP. Catatan
Jika penskalaan dinamis diaktifkan, gunakan |
|
bpf-nat-global-max |
Ukuran maksimum tabel NAT BPF. Catatan
Harus lebih kecil dari jumlah bpf-ct-global-any-max dan bpf-ct-global-tcp-max. Default = (bpf-ct-global-any-max + bpf-ct-global-tcp-max) × 2/3 Jika penskalaan dinamis diaktifkan, gunakan |
Untuk mengubah parameter ini, lihat cilium_args di Sesuaikan Parameter Konfigurasi Terway.
Ukuran peta dengan bpf-map-dynamic-size-ratio diatur ke 0,0025:
|
Memori node |
Ukuran peta CT (TCP) |
Ukuran map CT (apa pun) |
Ukuran peta NAT |
|
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
Atur 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"
}