仪表板

值得推荐的九大Kubernetes仪表板

发布时间:2022/8/8 18:14:49   

基于Web的Kubernetes仪表板用户界面,通常被用来管理那些部署在Kubernetes集群中的、容器化应用的生命周期。通过仪表板,我们可以更加轻松地管理集群资源,并对容器化的应用进行故障排除。可以说,有了仪表板,我们不但可以获得那些在远程集群上运行的应用状态概览,获悉可能发生的潜在错误信息,而且能够创建或修改单个Kubernetes资源。

为了实现扩展部署,启动滚动更新,重新启动Pod,或使用向导去部署新的应用,目前,业界已出现了各种Kubernetes仪表板应用项目,我们统称为YAKD(YetAnotherKubernetesDashboard)。本文将向您介绍各种适用于不同场景需求的仪表板应用,以方便您根据实际项目做出明智的选择。

1.KubernetesDashboard

作为默认的Kubernetes仪表板项目,kube-dashboard是最流行、也是最成熟的KubernetesUI客户端。该Web仪表板不但能够展示远程Kubernetes集群上,正在运行的容器化应用,而且能够管理诸如:部署、服务、作业等主要Kubernetes资源。

具体而言,它可以为运维人员提供部署在Kubernetes集群中的如下特性:

通过集中式的UI,方便团队管理Kubernetes

通过简单的用户界面,来管理各种资源的状态

通过对容器日志和指标的访问、以及SSH的连接等,进行故障排查

由于Kubernetes仪表板需要被安装在Kubernetes集群中,因此我们只有通过身份验证和授权,来实现良好的管理。不过,该仪表板所对应的设置过程并不简单,而且与与其他客户端相比,它能够按照标签过滤出的资源也较为有限,这可能会成为日常维护的痛点。

您可以按照如下操作命令,将该仪表板安装到远程Kubernetes集群上:

2.Lens

作为基于Electron的应用程序,Lens支持Windows、macOS和Linux。它最初是由Kontena开发的,不过在被Mirantis收购后,已作为开源项目被发布了。

在某种程度上,Lens恰好与kube-dashboard截然相反,它是一个可以替代Kubectl的客户端应用。除了能够与Kubernetes仪表板项目提供相似的功能,它还具有如下特性:

定制化资源定义(CRD)管理:目前有些项目能够以插件的形式与Lens相集成,以快速访问各类信息,而无需任何Kubeclt命令。

通过与Helm集成,它可轻松管理和部署任何版本的Helm

实现与Kustomize资源的集成,并获悉其概况

可作为Kubectl的替代,处置集群的设置,并运行Kubectl的任何命令

该项目虽然可以提供强大的GUI,但它需要特定的身份验证与授权管理,毕竟它不是一个一站式的工具。不过,对于那些由GitOpsOperator自动部署的资源,该项目不但能够提供故障排除,而且可以轻松访问任何Kubernetes事件、日志和指标,以快速地识别出症结所在。

您可以按照如下操作命令,在MacOS上安装Lens:

3.Octant

Octant是VMwareTanzu内置一个基于Web的开源工具。它旨在成为开发人员工具包中的一部分,以洞察Kubernetes群集的运行方式,并处置Kubernetes内部的复杂问题。Octant通过本地的Kubectl配置(即/.kube/config或KUBECONFIG的环境变量),自动连接到远程的Kubernetes集群上。

与Lens相比,Octant消耗的资源(尤其是内存)要少得多。与其他传统客户端类似,Octant也具有针对日志流和各种资源的图形显示功能,而且可以在集群之间自由切换。Octant的独特之处在于其插件系统。它允许您按需在自己的界面上,设计并添加插件。虽然这些都需要用到Go语言和插件系统的相关知识,但您可以完全按照您的方式,去自定义呈现给用户的体验。

您可以按照如下操作命令,在MacOS上安装Octant:

4.Rancher

作为完整的企业级计算平台,Rancher可以在本地、云端或边缘处,运行Kubernetes集群。严格说来,Rancher并非真正意义的Kubernetes仪表板,不过它具有相似的功能。它不但可以管理Kubernetes资源的生命周期(而不仅仅是资源),而且能够收集容器化应用的日志和指标等。当然,Rancher也带有一个仪表板的UI,可用来轻松地访问任何Kubernetes集群,并快速获取其运行数据。

与其他集成方式不同的是,Rancher需要在远程集群上部署代理、或以云集成的方式,来管理Kubernetes。此外,它也可以为采用了强大的身份验证机制(如企业级的LDAP)的团队,提供集中式的端点管理。

5.Kubevious

作为一个全新的、界面友好的Kubernetes仪表板,Kubevious可以更加智能地管理Kubernetes资源。Kubevious同样可以管理Kubernetes集群中任何资源的生命周期(其中包括:容器日志、指标、标签、描述等)。同时,它也具有对于已部署的容器化应用,进行故障排除等各种细节功能。

Kubevious既可以被部署在Kubernetes上,又可以作为集群外的独立应用被予以部署。与前面提到的Kubernetes仪表板和Octant类似,它可以充当任何集群的集中式端点管理。当然,Kubevious也有如下开创性的特性:

以应用程序为中心,提供的集群和配置视图。即便是简单的应用,在被部署到Kubernetes上时,也需要不同的对象。这通常需要不同的命令,去罗列和聚合所有已创建的资源。Kubevious能够将每个资源链接到单个可扩展视图框中,以快速获得整个应用对象的概览。

检测配置错误。它可以识别出许多配置错误的类型,其中包括:滥用标签、失效的端口等。

可以通过定义各种验证规则和自定义规则,来实施DevOps最佳实践。

可以识别共享配置,并显示不同的依赖对象。

Kubevious的一项特殊功能是,它能够查看在特定时间段内,已执行命令的报告。例如那些在Kubernetes集群上运行的、每一步操作的历史记录。当然,对于Kubevious而言,认证和授权同样是一个痛点,它往往需要借助外部管理。

您可以按照如下操作命令,在Kubernetes上安装Kubevious:

6.Kubehelper

Kubehelper是一个崭新的项目。它旨在通过Kubernetes仪表板的UI,去简化各项与Kubernetes集群相关的日常任务。Kubehelper附带了一系列预安装的插件,可用于收集各个指标的运行状态,并在用户友好的UI中呈现出所有的内容,进而执行诸如CronJobs和shell等命令。

与Kubevious一样,Kubehelper可用于实施基于自定义CronJobs任务的DevOps最佳实践,并能够随着时间的变化,去跟踪它们。由于Kubehelper项目是模块化的,因此自定义规则不仅基于默认的Kubectl内置命令,还包含了所有自动安装的插件。

KubeHelper的安装步骤较其他工具有所不同,请按照GitHub项目上的说明,进行部署。

7.Portainer

Portainer既可以使用自托管的Kubernetes,又能够采用诸如MicroK8s、K3s、K8sNative、OpenShift、AKS、EKS、以及DOKS等各种托管式的Kubernetes。它允许用户从单个WebUI处,同时管理多个集群,且并不限定使用何种编排器。Portainer直观的界面允许用户管理、监控和维护Kubernetes环境的各个方面。

目前,Portainer提供了日常管理多个Kubernetes集群所需的各项功能,其中包括:应用生命周期、日志访问、指标、以及配置文件版本等。凭借着其连接到LDAP的能力,该工具已成为任何需要身份验证和授权管理的企业级选择。

您可以按照如下操作命令,在Kubernetes上安装Portainer:

8.Skooner

曾被称为K8dash的Skooner,是一个开源的实时Kubernetes仪表板项目。就功能而言,Skooner非常贴合Kubernetes仪表板的需求。它通过metrics-server来提取运行时(runtime)的指标,并能够在精致的仪表板界面中,展示诸如:部署、命名空间和服务等Kubernetes集群资源。

与其他Kubernetes仪表板不同,Skooner提供了三种不同的身份验证方法,它们分别是:服务帐户令牌、OpenIDConnect(OIDC)、以及NodePort。

您可以按照如下操作命令,在Kubernetes上安装Skooner:

9.Kubenav

Kubenav是一种集移动(这是与上述工具的不同之处)、桌面和Web为一身的应用,可被用于管理Kubernetes集群,并获取资源状态的概览。

作为一个新兴的项目,Kubenav虽不像上面提到的其他项目那样完备,但是它拥有一支优秀的开发团队,能够快速地解决任何问题,并在新的版本中添加新的功能。正是由于该项目仍处于不断迭代的过程中,因此对于生产环境而言,其功能并不全面。不过,值得一提的是,它往往被大家作为一种按需使用的Kubernetes管理工具。

您可以按照如下操作命令,在MacOS上安装Kubenav:

小结

在上文中,我们列出了九个带有WebUI的Kubernetes仪表板项目。当然,业界还有更多提供此类功能的命令行工具。



转载请注明:http://www.aideyishus.com/lkzp/1355.html
------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章