Ajuste o tamanho da tabela conntrack eBPF e as configurações de timeout para gerenciar cargas de trabalho com alto volume de conexões no Terway.
Verifique o tamanho da tabela conntrack
O tamanho da tabela conntrack eBPF depende da capacidade de memória do nó.
Para visualizar o tamanho da tabela conntrack em um nó:
Obtenha o nome do pod terway-eniip:
# kubectl describe node <nodename> | grep terway-eniip
kube-system terway-eniip-xxxx 350m (8%) 1100m (28%) 200Mi (3%) 256Mi (3%) 16h
Consulte o tamanho da tabela 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
...
Parâmetros:
dynamic sizing: on: os mapas eBPF usam limites superiores dinâmicos. Se definido comooff, configurebpf-map-dynamic-size-ratiopara ajuste dinâmico ou definabpf-ct-global-any-max,bpf-ct-global-tcp-maxebpf-nat-global-maxpara tamanhos fixos.ratio: 0.002500: tamanho máximo do mapa eBPF como proporção da memória total do sistema.Non-TCP connection tracking: número máximo de entradas na tabela conntrack não TCP.TCP connection tracking: número máximo de entradas na tabela conntrack TCP.
Verifique o número de entradas conntrack
Por padrão, cada nó expõe métricas do Prometheus na porta 9962.
|
Métrica |
Rótulos e valores |
|
cilium_datapath_conntrack_gc_entries |
family: tipo de endereço IP. Valores válidos: protocol: tipo de protocolo. Valores válidos: status: estado da limpeza. Some todos os estados para obter a contagem de entradas conntrack antes da limpeza. Valores válidos: |
Modifique a porta de monitoramento padrão
|
Parâmetro |
Descrição |
|
prometheus-serve-addr |
Porta de escuta do Prometheus. Defina como
|
Para modifique esse parâmetro, consulte cilium_args em Personalizar parâmetros de configuração do Terway.
Ajustar o tamanho do conntrack eBPF
O conntrack eBPF e o conntrack Linux são funcionalmente idênticos. As configurações padrão atendem à maioria dos cenários.
Modifique as configurações nas seguintes situações:
Há muitas conexões de longa duração.
Os pods estão expostos à Internet e pode haver muitas conexões semiabertas.
Ajustar o tamanho da tabela conntrack é uma operação de alto risco. Avalie o impacto antes de aplicar alterações em produção. Após o ajuste, verifique o resultado conforme descrito em Verifique o tamanho da tabela conntrack.
|
Parâmetro |
Descrição |
|
bpf-map-dynamic-size-ratio |
Tamanho máximo do mapa eBPF como proporção da memória total do sistema.
|
|
bpf-ct-timeout-regular-any |
Timeout para entradas conntrack não TCP. Valor padrão: |
|
bpf-ct-timeout-regular-tcp |
Timeout para entradas conntrack TCP estabelecidas. Valor padrão: |
|
bpf-ct-timeout-regular-tcp-fin |
Timeout para encerramento de entradas conntrack TCP. Valor padrão: |
|
bpf-ct-timeout-regular-tcp-syn |
Timeout para estabelecimento de entradas conntrack TCP. Valor padrão: |
|
bpf-ct-timeout-service-any |
Timeout para entradas conntrack de serviço não TCP. Valor padrão: |
|
bpf-ct-timeout-service-tcp |
Timeout para entradas conntrack de serviço TCP estabelecidas. Valor padrão: |
|
bpf-ct-timeout-service-tcp-grace |
Timeout para desligamento gracioso de serviço TCP. Valor padrão: |
|
conntrack-gc-interval |
Intervalo de limpeza da tabela conntrack. Valor padrão: Nota
Intervalo em que o cilium-agent limpa a tabela conntrack. Não exceda o valor padrão. Um intervalo menor aumenta o uso de CPU pelo cilium-agent, mas evita que a tabela conntrack fique cheia. Ajuste o limite de CPU do contêiner Terway no console ACK. |
|
bpf-ct-global-any-max |
Tamanho máximo da tabela conntrack de serviço não TCP. Nota
Se o dimensionamento dinâmico estiver ativado, use |
|
bpf-ct-global-tcp-max |
Tamanho máximo da tabela conntrack de serviço TCP. Nota
Se o dimensionamento dinâmico estiver ativado, use |
|
bpf-nat-global-max |
Tamanho máximo da tabela BPF NAT. Nota
Deve ser menor que a soma de bpf-ct-global-any-max e bpf-ct-global-tcp-max. Padrão = (bpf-ct-global-any-max + bpf-ct-global-tcp-max) × 2/3 Se o dimensionamento dinâmico estiver ativado, use |
Para modifique esses parâmetros, consulte cilium_args em Personalizar parâmetros de configuração do Terway.
Tamanhos de mapa com bpf-map-dynamic-size-ratio definido como 0.0025:
|
Memória do nó |
Tamanho do mapa CT (TCP) |
Tamanho do mapa CT (any) |
Tamanho do mapa 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 |
Exemplo
Defina bpf-map-dynamic-size-ratio como 0.003 e bpf-ct-timeout-regular-tcp como 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"
}