HostPort do Kubernetes: invisível para lsof?

HostPort do Kubernetes: invisível para lsof?

Estou brincando com meu próprio pequeno cluster Kubernetes.

Algo que não entendi até agora é como ver todas as portas abertas (= tudo que meus Pods estão escutando).

Eu uso o Traefik como entrada comportas host: 80 e: 443e eu posso vê-lo ouvindo:80e:443quando eu corro sudo lsof -i.

No entanto, também tenho o GitLab rodando como Pod e atribuí a ele umhostPort(54321) que aponta para a porta dos Pods:22. Eu uso isso para clonagem de git.

Ambos os pods têm umseletor de nópara rodar apenas no master (...sim, eu sei.).

GitLabhostPort:54321não aparece com sudo lsof -i. Por que é que? Eu realmente não posso explicar isso com meu conhecimento limitado.

Em termos de configuração, a única diferença entre os Pods Traefik e o Pod Gitlab é que para o Traefik, oportas hostapontam para a mesma porta no pod (:80->:80,:443->:443) enquanto para o Gitlab Pod, eles diferem (:54321->:22).

Alguém pode me explicar isso? Por que não posso confiarlsofnesse caso?

Desde já, obrigado!

obs. a porta está definitivamente aberta e ouvindo

Responder1

O hostPort :54321 do GitLab não aparece com sudo lsof -i. Por que é que? Eu realmente não posso explicar isso com meu conhecimento limitado.

lsof lista informações sobrearquivos1 aberto porprocessos.

nenhum processono host que mantém o hostPort aberto e, portanto, nada para exibir lsof.

Provavelmente existe apenas uma iptablesregra netfilter ( ) que encaminha o tráfego dessa porta para o seu Pod Gitlab. Verifique com sudo iptables-savee/ou sudo iptables -L -v -n,sudo iptables -L -v -n -t security -t nat -t mangle


De maneira muito ampla, um arquivo aberto pode ser um arquivo normal, um diretório, um arquivo especial de bloco, um arquivo especial de caractere, uma referência de texto em execução, uma biblioteca, um fluxo ou um arquivo de rede (soquete de Internet, arquivo NFS ou soquete de domínio UNIX. )

informação relacionada