
我正在擺弄我自己的小型 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 -n
,sudo iptables -L -v -n -t security -t nat -t mangle
廣義上,開啟的檔案可以是常規檔案、目錄、區塊特殊檔案、字元特殊檔案、執行文字引用、函式庫、串流或網路檔案(Internet 套接字、NFS 檔案或 UNIX 網域套接字)。