Kubernetes problemas con nf_conntrack en EKS

Problemas con nf_conntrack en EKS : table full, dropping packet

Problemas con nf_conntrack en EKS puede aparecer si tienes bastantes conexiones, antes o después te encontraras en los logs del kernel unos errores tipo.

nf_conntrack: table full, dropping packet

Este error lo podemos encontrar con el comando dmesg.

Básicamente nos está diciendo que el sistema está denegando paquetes, ya que la tabla nf_conntrack de netfilter donde se guardan los registros de las conexiones activas de la máquina, está llena.

¿Cómo saber el limite de Amazon para EKS?

Con prometheus operator es muy sencillo ya que recoge métricas sobre los problemas con nf_conntrack, solo tendremos que lanzar la siguiente query, donde podremos ver el numero de registros que tenemos disponibles y poner una alerta acorde.

sum (node_nf_conntrack_entries_limit) by (instance) - sum (node_nf_conntrack_entries) by (instance)
Problemas con nf_conntrack en EKS

¿Cómo aumentar el limite en EKS?

Tenemos dos formas de hacerlo:

  • Aumentando el tipo de instancia: Cada tipo de EC2 instances tiene un limite max predefinido, lo podremos comprobar lanzando el siguiente comando desde la instancia.
cat /proc/sys/net/netfilter/nf_conntrack_max
  • Configurando kube-proxy para cambiar el limite: También podemos usar kube-proxy para establecer el limite mayor y así no tener que cambiar el tipo de instancia que estamos usando, para realizarlo haremos:
kube-proxy --resource-container="" --oom-score-adj=-998 --master=https://xxxxxx.sk1.xxx.eks.amazonaws.com --kubeconfig=/var/lib/kube-proxy/kubeconfig --conntrack-max-per-core=VALOR --proxy-mode=iptables 

La opción que deberemos añadir será

--conntrack-max-per-core=VALOR

Puedes asegurarte según tu versión de kube-proxy en https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/#options

Cómo apunte, el rollingupdate de kube-proxy no supone interrupción del servicio, ya que únicamente se encarga de mantener la configuración de iptables actualizada.

Si te has quedado con ganas de más, pásate por estos artículos entretenidos: