Engineering · 4 min read
Kubernetes 網路基礎:Pod 就是一支電話
在容器裡遙控 Chrome 之前必須搞懂的四個網路概念:IP、Port、localhost、0.0.0.0,用電話比喻一次講清楚。
四個概念,先搞懂再往下
要理解這個系列後面的內容,你需要先搞清楚四個網路概念。把 Kubernetes cluster 想成一棟辦公大樓。
IP 位址 = 分機號碼
每個 Pod 是一張桌子,有自己的分機號碼。
10.0.x.x 是私有網段,只有 cluster 內的 Pod 能用。
Port = 房間號碼
一個 Pod 可以跑多個服務。Port 決定你要找哪一個。
Pod 10.0.2.3
房間 :9222 → Chrome DevTools
房間 :8080 → Web 伺服器
房間 :9090 → Metrics
完整地址 = 分機:房間 = 10.0.2.3:9222。
localhost(127.0.0.1)= 群組聊天
每個 Pod 有自己的群組聊天。只有同一個 Pod 裡的 App 能參加。
0.0.0.0 = 接所有電話
0.0.0.0 不是別人撥的號碼。它是 App 啟動時的設定:要不要接外線。
同 Pod = 群組聊天能通
一個 Pod 裡的所有容器共享一個 network namespace。像同一支電話上的多個 App,都能用群組聊天。
不同 Pod = 必須打分機
「
127.0.0.1= 這個 Pod 限定。10.0.x.x= 別的 Pod 撥的號碼。0.0.0.0= 兩邊都接。」
參考來源:
- Cloudflare: What is an IP Address?
- Difference Between 127.0.0.1 and 0.0.0.0
- Why Pod Containers Talk on Localhost
- Pod-to-Pod Communication
Related: 接著看 Chrome 怎麼用這些網路規則,到 Chrome DevTools Protocol 深入了解,或回到系列總覽。