Puerto de host de Kubernetes: ¿invisible para lsof?

Puerto de host de Kubernetes: ¿invisible para lsof?

Estoy jugando con mi propio pequeño clúster de Kubernetes.

Algo que no entiendo hasta ahora es cómo ver todos los puertos abiertos (= todo lo que escuchan mis Pods).

Utilizo Traefik como entrada conPuertos de host: 80 y: 443y puedo verlo escuchando:80y:443cuando corro sudo lsof -i.

Sin embargo, también tengo GitLab ejecutándose como Pod y le asigné unPuerto host(54321) que apunta al puerto de los Pods:22. Lo uso para la clonación de git.

Ambos Pods tienen unselector de nodosejecutar solo en el maestro (... sí, lo sé).

de GitLabpuertohost:54321no aparece con sudo lsof -i. ¿Porqué es eso? Realmente no puedo explicar eso con mi conocimiento limitado.

En términos de configuración, la única diferencia entre Traefik Pods y Gitlab Pod es que para Traefik, elPuertos de hostapunte al mismo puerto en el Pod (:80->:80,:443->:443) mientras que para Gitlab Pod, difieren (:54321->:22).

¿Alguien puede explicarme esto? ¿Por qué no puedo confiar?lsof¿en este caso?

¡Gracias de antemano!

PD. El puerto definitivamente está abierto y escuchando.

Respuesta1

El hostPort de GitLab: 54321 no aparece con sudo lsof -i. ¿Porqué es eso? Realmente no puedo explicar eso con mi conocimiento limitado.

lsof enumera información sobrearchivos1 abierto porprocesos.

Hayningún procesoen el host que mantiene abierto el hostPort y, por lo tanto, no hay nada que mostrar lsof.

Probablemente solo exista una iptablesregla netfilter () que reenvía el tráfico en ese puerto a su Gitlab Pod. Consulte con sudo iptables-savey/o sudo iptables -L -v -n,sudo iptables -L -v -n -t security -t nat -t mangle


En términos muy generales, un archivo abierto puede ser un archivo normal, un directorio, un archivo especial de bloque, un archivo especial de caracteres, una referencia de texto en ejecución, una biblioteca, una secuencia o un archivo de red (socket de Internet, archivo NFS o socket de dominio UNIX). )

información relacionada