雲端原生基礎設施供應商Kinvolk打造了圖形介面,讓Kubernetes使用者不需要使用命令列工具或是配置檔案,就可以方便地管理Kubernetes部署,該專案被命名為Headlamp,完全開源且獨立於所有供應商,Headlamp提供互動式使用者介面,可以進行讀寫操作,而非僅是唯讀的儀表板。

Headlamp是一個通用可擴展的Kubernetes使用者介面,官方希望Headlamp盡可能支援各種不同的使用者,因此無論是剛入門的用戶,或是經驗豐富的專家,以及有著特殊需求的使用者,都能夠使用Headlamp滿足需求,官方提到,由於Kubernetes使用案例太多元,因此下游用戶通常需要自定義UI專案,而Headlamp提供樹外擴充套件系統,來解決這個問題,Headlamp的後端可以載入Javascript檔案,並傳遞給客戶端以動態載入這些擴充套件。

擴充套件系統為Headlamp提供了極大的靈活度,可讓用戶創建各種新功能,官方舉例,用戶可以透過擴充套件系統,在Pod細節檢頁面中添加按鈕,提供Pod運作成本資訊。

而官方開發好用的追蹤小工具Inspektor,來展示擴充套件系統的功能,開發者可將Inspektor小工具安裝在叢集中,在啟用Traceloop小工具後,該工具便會快取Pod所有的系統呼叫,因此用戶就能夠在Pod還在執行的同時,查看Pod的狀態,也能在Pod終止時,查看系統呼叫紀錄,供用戶簡單地調查崩潰紀錄。

Headlamp可根據用戶的權限,變更顯示的介面,官方提到,許多Kubernetes讀寫使用者介面,並無法良好整合底層存取控制,因此部分介面上的按鈕,提供用戶實際上不具備的功能,像是當用戶沒有修改資源的權限,但是介面卻出現創建和刪除按鈕,則可能讓用戶產生誤解。而Headlamp會檢查Kubernetes RBAC配置,僅顯示可執行操作的擴充元件,以提供更好的用戶體驗。

官方提到,大部分Kubernetes UI可分為託管後端,以及本機桌面應用程式兩種類型,而兩種類型各有優缺點。託管應用程式可以透過單一URL,讓用戶在各處存取使用者介面,並且簡單地同步叢集版本,而桌面應用程式無需託管UI應用程式,具備隔離性,但是應用程式更新的負擔落到了用戶身上。Headlamp提供兩種方法,用戶可以透過使用YAML檔案,將UI託管在叢集中,也能在Linux、Mac和Windows上安裝應用程式。

Headlamp是一項獨立於所有Kubernetes發布版本的專案,Kinvolk表示,他們有推出自有的Kubernetes發行版Lokomotive,而Lokomotive的確是使用Headlamp作為其網頁使用者介面,但因為Headlamp為獨立專案的關係,因此Headlamp支援任何經認證的Kubernetes,不僅只有Lokomotive。


Advertisement

更多 iThome相關內容