k8s web終端連接工具


k8 web terminal

一個k8s web終端連接工具,在前后端分離或未分離項目中心中,也可以把此項目無縫集成,開箱即用。
項目地址:https://github.com/jcops/k8-web-terminal

實現細節

前端用xterm.js庫,它是模擬一個terminal在瀏覽器中,並沒有通訊能力。需要在前端建立websocket,連到自己開發的websocket服務端。服務端會基於k8s的remotecommand包,建立與container的ssh長連接,remotecommand包只需要我們提供3個回調,其中read是來獲取terminal的輸入,我們要做的就是讀取websocket發來的數據,然后返回給read回調;write則是用來向terminal發送數據,我們要做的就是調用websocket把數據寫到前端,然后前端把數據寫給xterm即可;next是用來獲取terminal的實際大小的,sshd服務端需要知道終端的大小,這樣決定了它一行輸出多少個字符就要輸出一次換行符。所以,當瀏覽器窗口改變影響了terminal大小的時候,前端應該把最新的terminal大小發給服務端,然后在next回調中返回其大小。

下面是真實的效果

image.png

image.png

感謝以下框架的開源支持

MIT License

Copyright (c) 2019 Eric


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM