Kinvolk推出K8s UI开源项目Headlamp

云计算原生基础设施供应商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。

发表评论