Kubernetes hostPort:對 lsof 不可見?

Kubernetes hostPort:對 lsof 不可見?

我正在擺弄我自己的小型 Kubernetes 叢集。

到目前為止我不明白的是如何查看所有開放連接埠(= 我的 Pod 正在偵聽的所有連接埠)。

我使用 Traefik 作為入口主機連接埠:80 和:443我可以看到它在聽:80:443當我跑步時sudo lsof -i

不過,我也讓 GitLab 作為 Pod 運行,並為其分配了一個主機連接埠(54321) 指向 Pod 的端口:22。我用它來進行 git 克隆。

兩個 Pod 都有一個節點選擇器僅在主機上運行(...是的,我知道。)。

亞搏體育appGitLab的主機連接埠:54321不顯示sudo lsof -i.這是為什麼?以我有限的知識,我無法真正解釋這一點。

在配置方面,Traefik Pod 與 Gitlab Pod 的唯一區別在於,對於 Traefik 來說,主機連接埠指向 Pod 中的相同連接埠(:80->:80,:443->:443)而對於 Gitlab Pod,它們不同(:54321->:22)。

有人可以跟我解釋一下嗎?為什麼我不能信任拉索夫在這種情況下?

先致謝!

附:端口肯定是開放的並且正在監聽

答案1

GitLab 的主機連接埠:54321 沒有顯示為sudo lsof -i.這是為什麼?以我有限的知識,我無法真正解釋這一點。

lsof 列出有關的信息文件1打開者流程

沒有過程在保持 hostPort 開啟的主機上,因此沒有任何內容可顯示lsof

可能只有一個 netfilter ( iptables) 規則將該連接埠上的流量轉送到您的 Gitlab Pod。檢查和sudo iptables-save/或sudo iptables -L -v -nsudo iptables -L -v -n -t security -t nat -t mangle


廣義上,開啟的檔案可以是常規檔案、目錄、區塊特殊檔案、字元特殊檔案、執行文字引用、函式庫、串流或網路檔案(Internet 套接字、NFS 檔案或 UNIX 網域套接字)。

相關內容