[英]Unable to communicate between pods running on different nodes in Kubernetes
我一直在使用Kubernetes和Locust( 類似於此 )構建分布式負載測試應用程序。
我目前有一個在裸機上運行的多節點集群(在Ubuntu 18.04服務器上運行,使用Kubeadm設置,並使用Flannel作為我的pod網絡插件)。
我的集群的架構如下:
截至目前,我不相信這種情況正在發生 。 我的群集顯示我的所有部署都運行良好並且正在運行 ,但是我無法訪問在我的主節點以外的節點上運行的任何從屬實例的日志。 這讓我相信我的pod無法在不同節點之間相互通信。
從屬實例如何嘗試加入主實例。 您必須創建主服務(帶標簽)才能訪問主pod。 此外,請確保您的SDN已啟動且主服務器可以訪問主服務器實例。 您可以使用telnet測試從從屬實例中控制pod IP。
根據您對問題的描述,我可以猜測您遇到了由防火牆或網絡配置錯誤導致的連接問題。
從網絡角度來看,Kubernetes 文檔中提到了一些要求:
- 所有容器都可以與所有其他容器通信而無需NAT
- 所有節點都可以在沒有NAT的情況下與所有容器通信(反之亦然)
- 容器看到的IP與其他人看到的IP相同
從防火牆的角度來看,您需要確保群集流量可以通過節點上的防火牆。
以下是您應該在CoreOS網站提供的節點上打開的端口列表:
Master node inbound: TCP: 443 from Worker Nodes, API Requests, and End-Users
UDP: 8285,8472 from Master & Worker Nodes
Worker node inbound: TCP: 10250 from Master Nodes
TCP: 10255 from Heapster
TCP: 30000-32767 from External Application Consumers
TCP: 1-32767 from Master & Worker Nodes
TCP: 179 from Worker Nodes
UDP: 8472 from Master & Worker Nodes
UPD: 179 from Worker Nodes
Etcd node inbound: TCP: 2379-2380 from Master & Worker Nodes
在所有節點上啟用了ip forwarding。
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
如果不是這樣啟用它並測試它。
echo 1 > /proc/sys/net/ipv4/ip_forward
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.