值得推荐的九大Kubernetes仪表板工具

译文
云计算
Kubernetes是当前主流的容器编排平台。本文为您列举并介绍了九大带有Web UI的Kubernetes仪表板工具,可方便您简化管理并提高排障能力。

[[429325]]

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

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

1. Kubernetes Dashboard

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

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

  • 通过集中式的UI,方便团队管理Kubernetes
  • 通过简单的用户界面,来管理各种资源的状态
  • 通过对容器日志和指标的访问、以及SSH的连接等,进行故障排查

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

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

有关该项目的更多信息,请参阅如下外部链接:

  • Github存储库 - https://github.com/kubernetes/dashboard
  • 项目网站 - https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

2. Lens

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

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

  • 定制化资源定义(CRD)管理:目前有些项目能够以插件的形式与Lens相集成,以快速访问各类信息,而无需任何Kubeclt命令。
  • 通过与Helm集成,它可轻松管理和部署任何版本的Helm
  • 实现与Kustomize资源的集成,并获悉其概况
  • 可作为Kubectl的替代,处置集群的设置,并运行Kubectl的任何命令

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

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

有关该项目的更多信息,请参阅如下外部链接:

  • Github存储库 - https://github.com/lensapp/lens
  • 项目网站 - https://k8slens.dev/
  • Lens的扩展 - https://github.com/lensapp/lens-extensions

3. Octant

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

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/vmware-tanzu/octant
  • 项目网站 - https://octant.dev/

4. Rancher

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/rancher/rancher
  • 项目网站 - https://rancher.com/

5. Kubevious

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

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

  • 以应用程序为中心,提供的集群和配置视图。即便是简单的应用,在被部署到Kubernetes上时,也需要不同的对象。这通常需要不同的命令,去罗列和聚合所有已创建的资源。Kubevious能够将每个资源链接到单个可扩展视图框中,以快速获得整个应用对象的概览。
  • 检测配置错误。它可以识别出许多配置错误的类型,其中包括:滥用标签、失效的端口等。
  • 可以通过定义各种验证规则和自定义规则,来实施DevOps最佳实践。
  • 可以识别共享配置,并显示不同的依赖对象。

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/kubevious/kubevious
  • 项目网站 - https://kubevious.io/
  • Kubevious的功能列表 - https://github.com/kubevious/kubevious#cluster-and-configs-in-an-application-centric-view
  • 一个革命性的Kubernetes仪表板,可用于交叉检查和验证您的Kubernetes资源 - https://codefresh.io/kubernetes-tutorial/kubevious-kubernetes-dashboard/

6. Kubehelper

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

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

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

有关KubeHelper项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/KubeHelper/kubehelper
  • 预装插件列表 - https://github.com/KubeHelper/kubehelper/wiki/KubeHelper-utilities,-plugins-and-shells

7. Portainer

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

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/portainer/portainer
  • 项目网站 - https://www.portainer.io/

8. Skooner

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

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/skooner-k8s/skooner
  • 项目网站 - https://skooner.io/

9. Kubenav

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

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

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

有关该项目的更多信息,请参阅如下链接:

  • Github存储库 - https://github.com/kubenav/kubenav
  • 项目网站 - https://kubenav.io/

小结

在上文中,我们列出了九个带有Web UI的Kubernetes仪表板项目。当然,业界还有更多提供此类功能的命令行工具。您可以通过链接--https://kube-web-view.readthedocs.io/en/latest/alternatives.html,了解更多有关Kubernetes仪表板的其他替代方案。

原文标题:YAKD: Yet Another Kubernetes Dashboard,作者: Nicolas Giron

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2023-08-05 15:12:54

Kubernetes命令

2023-03-06 15:25:28

Kubernetes开源集群

2021-08-12 13:00:56

物联网IOT

2022-11-25 08:00:00

人工智能工具Grammarly

2018-09-01 05:06:37

2022-06-28 13:25:19

K8sPrometheusGrafana

2022-03-21 09:25:50

Kubernetes开源DevSecOps

2023-03-07 11:37:02

Python指标仪表板

2017-06-07 08:54:47

APM仪表板Lombok设计框架

2022-04-28 13:17:10

低代码开发工具

2022-06-14 08:50:18

Python交互式仪表板代码

2016-10-26 04:46:26

英特尔科技新闻早报

2022-09-19 10:07:30

制造业IT领导者

2024-04-16 08:00:00

大型机器学习MLOps

2020-06-08 14:19:24

DevOps自动化工具

2021-08-02 08:55:50

Argo网络Kubernetes云集群

2020-11-11 19:10:31

工具代码开发

2020-01-02 14:25:50

工具代码开发

2022-08-31 14:06:02

RPA工具人工智能

2021-08-01 12:06:41

Kubernetes云集群攻击
点赞
收藏

51CTO技术栈公众号