云邊運(yùn)維通信組件Tunnel FAQ
本文介紹云邊運(yùn)維通信組件Tunnel的常見問題。
kubectl exec/logs不通、Prometheus和Metrics Server不能獲取邊緣節(jié)點(diǎn)的Metrics數(shù)據(jù)
問題現(xiàn)象
執(zhí)行命令
kubectl exec -it edge-tunnel-agent-xxx -n kube-system -- sh
時(shí),輸出報(bào)錯信息error: unable to upgrade connection: fail to setup the tunnel: fail to setup TLS handshake through the Tunnel
。Prometheus不能獲取邊緣節(jié)點(diǎn)的Metrics數(shù)據(jù)。
Metrics Server不能獲取邊緣節(jié)點(diǎn)的Metrics數(shù)據(jù)。
問題原因
出現(xiàn)此類問題,可能是由于云上的edge-tunnel-server與edge-tunnel-agent之間沒有建立網(wǎng)絡(luò)鏈接。
解決方案
執(zhí)行以下命令,查看edge-tunnel-server Pod的日志。替換以下
edge-tunnel-server-xxx
為您edge-tunnel-server Pod的名稱。kubectl logs edge-tunnel-server-xxx -n kube-system
預(yù)期輸出中出現(xiàn)以下錯誤提示。
tunnel.go:74] "currently no tunnels available" err="No backend available" interceptor.go:115] successfully setup connection to "127.0.0.1:10255" with headers: "\r\nX-Tunnel-Proxy-Host: xxxx\r\nUser-Agent: Go-http-client/1.1" interceptor.go:136] fail to write request to tls connection: write unix @->/tmp/interceptor-proxier.sock: write: broken pipe
收集出現(xiàn)問題的邊緣節(jié)點(diǎn)的診斷信息。具體操作,請參見如何收集ACK Edge集群節(jié)點(diǎn)的診斷信息?
在收集到的信息中,查看edge-tunnel-agent的日志,是否出現(xiàn)以下提示信息。
1 clientset.go:156] "cannot sync once" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp xxx.xxx.xxx.xxx:10262: i/o timeout\""
若沒有出現(xiàn)以上信息,請提交工單處理。
若出現(xiàn)以上信息,請轉(zhuǎn)下一步。
執(zhí)行以下命令,查看tunnel-server的暴露地址。
kubectl get svc -n kube-system | grep tunnel-server-svc
預(yù)期輸出:
x-tunnel-server-svc LoadBalancer 172.16.XX.XX 47.99.XX.XX 10262:30164/TCP 47h
在邊緣節(jié)點(diǎn)上檢查與tunnel-server的網(wǎng)絡(luò)連通性,您可以通過
ping 47.99.XX.XX
查看網(wǎng)絡(luò)是否連通。如果網(wǎng)絡(luò)不通,則需要繼續(xù)排查網(wǎng)絡(luò)問題。
如果網(wǎng)絡(luò)連通,則執(zhí)行下一步。
在邊緣節(jié)點(diǎn)上
telnet 47.99.XX.XX 10262
查看是否連通。如果端口不通,則需要檢查云上安全組、SLB的ACL規(guī)則、tunnel-server所在節(jié)點(diǎn)的iptables規(guī)則,確認(rèn)這些規(guī)則是否阻礙網(wǎng)絡(luò)鏈接的建立。如果云上安全策略沒有阻攔,則需要檢查邊緣節(jié)點(diǎn)本身網(wǎng)絡(luò)策略是否對出公網(wǎng)10262端口進(jìn)行攔截。
重要目前Tunnel采用10262,10263,10264三個端口,云上安全策略不允許對這三個端口進(jìn)行任何限制;云下安全策略不允許對10262端口進(jìn)行任何限制。
SLB無任何ACL,請勿私自添加ACL規(guī)則。