vlambda博客
学习文章列表

又一个K8s UI开源项目Headlamp


云原生基础设施供应商Kinvolk打造了图形界面,让Kubernetes使用者不需要使用命令列工具,就可以方便地管理Kubernetes,该项目被命名为Headlamp 完全开源且独立于所有供应商 Headlamp提供互动式使用者界面,可以进行读写操作,而非仅是唯读的仪表板。

又一个K8s UI开源项目Headlamp

 
Headlamp是一个通用可扩展的Kubernetes使用者界面,官方希望Headlamp尽可能支持各种不同的使用者,因此无论是刚入门的用户,或经验丰富的专家,以及有着特殊需求的使用者,都能够使用Headlamp满足需求,官方提到,由于Kubernetes使用案例太多元,因此下游用户通常需要自定义UI项目,而Headlamp提供扩充组件系统来解决这个问题,Headlamp的后端可以载入Javascript文件,并传递给客户端以动态载入这些扩充组件。
 
扩充组件系统为Headlamp提供了极大的灵活度,可让用户创建各种新功能,官方举例,用户可以通过扩充系统,在Pod相应页面中添加按钮,提供Pod运行信息。
 
又一个K8s UI开源项目Headlamp
 
而官方开发的追踪小工具Inspektor,来展示扩充组件系统的功能,开发者可将Inspektor小工具安装在集群中,在启用Traceloop小工具后,该工具便会拉Pod所有的系统呼叫,因此用户就能够在Pod还在执行的同时,查看Pod的状态,也能在Pod终止时,查看系统使用纪录,供用户简单地调查崩溃纪录。
 
Headlamp可根据用户的权限,变更显示的界面,官方提到,许多Kubernetes读写使用者界面,并无法良好整合底层存取控制,因此部分界面上的按钮,提供用户实际上不具备的功能,象是当用户没有修改资源的权限,但是界面却出现创建和删除按钮,则可能让用户产生误解。而Headlamp会检查Kubernetes RBAC配置,仅显示可执行操作的扩充组件,以提供更好的用户体验。
 
官方提到,大部分Kubernetes UI可分为托管后端,以及本机桌面应用程序两种类型,而两种类型各有优缺点。托管应用程序可以通过单一URL,让用户在各处存取使用者界面,并且简单地同步集群版本,而桌面应用程序无需托管UI应用程序,具备隔离性,但是应用程序更新的负担落到了用户身上。Headlamp提供两种方法,用户可以通过使用YAML文件,将UI托管在集群中,也能在LinuxMacWindows上安装应用程序。
 
Headlamp是一项独立于所有Kubernetes发布版本的项目,Kinvolk表示,他们有推出自有的Kubernetes发行版Lokomotive,而Lokomotive的确是使用Headlamp作为其网页使用者界面, 但因为Headlamp为独立项目的关系,因此Headlamp支持任何经认证的Kubernetes,不仅只有Lokomotive

参考:

https://kinvolk.io/blog/2020/11/shining-a-light-on-the-kubernetes-user-experience-with-headlamp/

https://www.ithome.com.tw/news/141191

https://github.com/kinvolk/headlamp