【問題解決】unable to do port forwarding: socat not found

問題復現

前陣子應公司要求做華爲雲平臺的調研,寫了一篇文檔包含將華爲雲CCE下載kuberctl配置及使用kubectl轉發流量到本地的操作。

今天一早上同事就發來一個錯誤界面,說是Java遠程調試轉發過來的端口出現問題,如下圖:

處理思路

最初以爲是容器鏡像未安裝socat所致,安裝重新打鏡像後問題仍存在。

在網上查詢了下github和stackoverflow,發現問題出在k8s的版本上和工作節點未安裝socat。

根據代碼的追蹤,定位到從release-0.16 ~ release-1.2 都有pkg/kubelet/dockertools/manager.go這個源碼文件,其PortForward方法中會校驗工作節點中是否安裝了socat包,雖然更高版本沒這個文件了,但kubelet相關仍有socat檢測,也就是說升k8s版本可能解決不了問題。

解決辦法

  • 升級k8s版本高於1.2。
  • 工作節點安裝socat包。

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章