Kubernetes ホストポート: lsof には表示されませんか?

Kubernetes ホストポート: lsof には表示されませんか?

私は自分の小さな Kubernetes クラスターを試しています。

今のところ理解できていないのは、開いているすべてのポート (= Pod がリッスンしているすべてのもの) を確認する方法です。

私はTraefikをIngressとして使っていますホストポート:80 および:443そして私はそれが聞いているのを見ることができます:80そして:443走るときsudo lsof -i

しかし、GitLabをPodとして実行し、それにホストポート(54321)はポッドのポートを指す:22. 私はこれを git クローンに使用します。

どちらのポッドもノードセレクタマスター上でのみ実行します (...はい、わかっています)。

GitLabのホストポート:54321が表示されませんsudo lsof -i。なぜでしょうか? 私の限られた知識では、それを説明することはできません。

設定の点では、Traefik PodとGitlab Podの唯一の違いは、Traefikの場合、ホストポートポッド内の同じポートを指す(:80->:80:443->:443) Gitlab Podの場合は異なります(:54321->:22)。

誰か説明してくれませんか?なぜ信用できないのかlsofこの場合?

前もって感謝します!

追伸:ポートは確実に開いており、待機しています

答え1

GitLab の hostPort :54321 は では表示されませんsudo lsof -i。なぜでしょうか? 私の限られた知識では、それを説明することはできません。

lsof に関する情報をリストしますファイル1 人がオープンプロセス

があるプロセスなしホストではホストポートが開いたままになっているため、何も表示されませんlsof

iptablesおそらく、そのポートのトラフィックをGitlab Podに転送するnetfilter()ルールだけがあるのでしょう。sudo iptables-saveおよび/またはで確認してくださいsudo iptables -L -v -nsudo iptables -L -v -n -t security -t nat -t mangle


非常に広い意味では、開いているファイルは、通常のファイル、ディレクトリ、ブロック特殊ファイル、文字特殊ファイル、実行中のテキスト参照、ライブラリ、ストリーム、またはネットワーク ファイル (インターネット ソケット、NFS ファイル、または UNIX ドメイン ソケット) である可能性があります。

関連情報