
点击上方 云原生CTO,选择 设为星标
优质文章,每日送达


「【只做懂你de云原生干货知识共享】」
kubernetes仪表盘汇总
这篇文章的目的是列出一些现有的仪表板项目。仪表板的数量似乎每天都在增加,尽管下面列出的一些项目已经满足仪表板应用程序的所有要求。
仪表板是基于 Web 的 Kubernetes 用户界面。仪表板的主要目的是管理部署在 Kubernetes 集群中的容器化应用程序的生命周期。幸运的是,仪表板还有其他好处,可以使集群上的任何操作更容易,例如对容器化应用程序进行故障排除和管理集群资源。
仪表板的主要好处是获得在远程集群上运行的应用程序的概览,并创建或修改单个 Kubernetes 资源,例如扩展部署、启动滚动更新、重新启动 Pod 或使用部署向导部署新应用程序。
基本上,仪表板提供有关 Kubernetes 集群及其资源的状态以及可能发生的潜在错误的信息。
这篇文章列出了一堆项目。其中一些旨在不仅仅是一个简单的 Kubernetes 仪表板。每个工具的用法取决于用例。例如,有人更喜欢使用本地应用程序,而不是使用部署在 Kubernetes 集群中的共享仪表板。由您在以下这些项目之间做出选择。
Kubernetes Dashboard

让我们从默认的 Kubernetes Dashboard 项目kube-dashboard 开始。这个仪表板是最流行和最成熟的 Kubernetes UI 客户端。此 Web UI 仪表板概述了在远程 Kubernetes 集群上运行的容器化应用程序,以及管理主要 Kubernetes 资源(如部署、服务、作业等)的能力。
部署在 Kubernetes 集群中,它提供了操作员可以期望的所有功能:
集中式 UI 以团队形式管理 Kubernetes。
简单的用户界面来管理任何资源。
对容器日志访问、指标、SSH 连接等功能进行故障排除。
由于 Kubernetes Dashboard 必须安装在 Kubernetes 集群中,因此需要对身份验证和授权进行良好的管理,但设置这些过程并不那么简单。
这个项目可能是揭开 Kubernetes 集群管理复杂性的一个良好开端,但与其他客户端相比,它过滤标签资源的能力有限,这可能是日常维护的痛点。
要将其安装在远程 Kubernetes 集群上,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/kubernetes/dashboard」
「项目网站 https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/」
Lens

让我们继续讨论当今每个运营商和开发人员使用的可能是最著名的 Kubernetes 仪表板应用程序。
Lens是一个基于 Electron 的应用程序(支持 Windows、macOS、Linux)。它最初由 Kontena 开发,并在 Mirantis 收购后作为开源项目发布。
在某种程度上,Lens 与 kube-dashboard 截然相反。它是一个可以替代 Kubectl 的客户端应用程序。
它提供与 Kubernetes Dashboard 项目相同的功能,以及其他有用的功能,例如:
自定义资源定义 (CRD) 管理,现在有几个项目正在将它们作为插件与Lens集成,以快速访问所有信息,而无需任何 Kubeclt 命令。
Helm 集成可轻松管理部署的任何 Helm 版本。
Kustomize 资源和集成概述。
可以替换 Kubectl,因为 Lens 能够处理集群设置并运行任何 Kubectl 命令。
这个项目可能是当今运行 Kubernetes 项目最强大的 GUI,但它需要管理特定的身份验证/授权,因为它不是一个集中的工具。
该项目对于轻松对 GitOps Operator 自动部署的任何资源进行故障排除特别有用。它可以轻松访问任何 Kubernetes 事件、日志和指标,以快速识别任何问题。
要在 MacOS 上安装 Lens,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/lensapp/lens」
「项目网站 https://k8slens.dev/」
「Lens扩展 https://github.com/lensapp/lens-extensions」
Octant

Octant是VMware Tanzu内置一个开源的基于Web的工具,可以帮助理解应用程序Kubernetes群集上的运行方式。它旨在成为开发人员工具包的一部分,以获取洞察力并处理 Kubernetes 中的复杂性。Octant 依靠本地 Kubectl 配置自动连接到远程 Kubernetes 集群(/.kube/config 或 KUBECONFIG 环境变量)。
与 Lens 相比,Octant 消耗的资源要少得多,尤其是内存。
Octant 提供了其他传统客户端也具有的功能,例如日志流、所有资源的图形显示、集群之间的切换等......它最独特的功能是它的插件系统,它允许您根据信息设计插件你想在你的界面上。虽然这需要 Go 和插件系统的知识,但您可以完全按照您想要的方式定制您的体验。
要在 MacOS 上安装 Octant,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/vmware-tanzu/octant」
「项目网站 https://octant.dev/」
Rancher

Rancher 是完整的企业计算平台,可在本地、云端或边缘运行 Kubernetes 集群。所以是的,Rancher 并不是真正的 Kubernetes 仪表板,但它具有相同的功能,管理一些 Kubernetes 资源的生命周期,它可以收集容器化应用程序的日志和指标等……
与其他项目一样,Rancher 可以连接到现有集群,但也可以创建新集群。这就是为什么 Rancher 可能不在这个范围内,因为它可以管理整个集群的生命周期,而不仅仅是资源。但是 Rancher 仍然有一个仪表板 UI,可以轻松访问任何 Kubernetes 集群并快速获得见解。
集成与其他集成不同,因为它需要在远程集群上部署代理或云集成来管理 Kubernetes。Rancher 可以是任何具有强大身份验证机制(如企业 LDAP)的团队的集中端点管理。
有关该项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/rancher/rancher」
「项目网站 https://rancher.com/」
Kubevious

Kubevious是一个新的、非常有趣的 Kubernetes 仪表板,可以更智能地管理 Kubernetes 资源。与其他资源一样,Kubevious 可以管理 Kubernetes 集群中任何资源的生命周期。它还具有对部署的容器化应用程序进行故障排除所需的所有功能(容器日志、指标、标签、描述等)。
Kubevious 可以部署在 Kubernetes 上,也可以作为集群外的独立应用程序部署。与 Kubernetes Dashboard 或 Octant 类似,它可以用作任何集群的集中式端点管理。与其他的相比,Kubevious 有许多开创性的特性:
集群和配置是以应用程序为中心的视图,即使对于简单的应用程序,在 Kubernetes 上部署应用程序也需要不同的对象。通常,它需要不同的命令来列出和聚合所有创建的资源。Kubevious 能够将每个资源链接到单个消耗性框或视图中,以快速获得整个应用程序对象的概览。
检测配置错误,这意味着它可以识别许多配置错误,例如滥用标签、丢失端口等。
验证规则,可以定义自定义规则来强制执行 DevOps 最佳实践。识别爆炸半径,Kubevious 可以识别共享配置并显示其他依赖对象。
这只是使 Kubevious 成为一个有趣的集中式 Kubernetes Dashboard 项目的功能的一个子集。但和其他一样,认证和授权是一个痛点,需要外部管理。
要在 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/」
Kubehelper

Kubehelper是一个非常新的项目,旨在通过 Kubernetes 仪表板 UI 简化许多日常 Kubernetes 集群任务。
Kubehelper 附带了一系列预安装的插件,用于收集见解并在漂亮的 UI 中呈现所有内容,以应用基于 CronJobs 和 shell 命令的操作。Kubevious 的一个有趣功能是它能够查看有关特定时间段已执行命令的报告,例如在 Kubernetes 集群上运行的每个动作/操作的历史记录。
与 Kubevious 一样,Kubehelper 可用于实施基于自定义 CronJobs 任务的 DevOps 最佳实践,并随着时间的推移对其进行跟踪。
由于项目的模块化,自定义规则不仅基于默认的 Kubectl 内置命令,还包括自动安装的所有插件。
Kubehelper 需要安装不同的步骤,请按照GitHub 项目上的说明进行部署。
有关Kubehelper项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/KubeHelper/kubehelper」
「预装插件列表 https://github.com/KubeHelper/kubehelper/wiki/KubeHelper-utilities,-plugins-and-shells」
Portainer

Portainer允许用户从单个 Web UI 同时管理多个集群,而不管使用的是何种编排器。
作为 Rancher,Portainer 可以使用自托管或托管的各种 Kubernetes(MicroK8s、K3s、K8s Native、OpenShift、AKS、EKS、DOKS 等)。其直观的界面允许用户管理、监控和维护 Kubernetes 环境的各个方面。
Portainer 提供了日常管理多个 Kubernetes 集群所需的所有功能(应用程序生命周期、日志访问、指标、配置文件版本等)。其连接到 LDAP 的能力使该工具成为任何需要身份验证和授权管理的企业的理想选择。
要在 Kubernetes 上安装 Portainer,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:「Github 存储库 https://github.com/portainer/portainer」
「项目网站 https://www.portainer.io/」
Skooner

Skooner,以前称为 K8dash,是一个开源实时 Kubernetes 仪表板项目。
就功能而言,Skooner 可能是最接近 Kubernetes Dashboard 的项目。它在一个漂亮的仪表板中提供了主要 Kubernetes 资源的概述,如集群资源、部署、命名空间、服务等……为了获取这些数据,Skooner 依靠 metrics-server 来提取运行时指标。
与 Kubernetes 仪表板不同,Skooner 提供三种不同的身份验证方法:服务帐户令牌、OpenID Connect (OIDC) 或通过 NodePort。
要在 Kubernetes 上安装 Skooner,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:
「Github 存储库 https://github.com/skooner-k8s/skooner」
「项目网站 https://skooner.io/」
Kubenav

Kubenav是一个相当新的项目,不像本文中列出的其他项目那么完整,但它拥有一支优秀的开发团队,他们试图尽快解决任何问题并在任何新版本中添加新功能。
Kubenav 是一种移动(可能是今天唯一的)、桌面和 Web 应用程序,用于管理 Kubernetes 集群并获取资源状态概览。
该项目正在开发中,因此缺少许多功能可以说它已准备好投入生产。但它值得一提,因为它可以成为任何随叫随到的 Kubernetes 运营商的一个非常有趣的工具。要在 MacOS 上安装 Kubenav,请按照以下说明操作:

有关该项目的更多信息,请参阅这些外部链接:「Github 存储库 https://github.com/kubenav/kubenav」
「项目网站 https://kubenav.io/」
下一个?
在这篇文章中,我们只列出了几个 Kubernetes Web Interface 仪表板项目。显然,还有更多没有提到可以提供本文中列出的一些功能的命令行工具。
有关本文中列出的项目的更多信息:Kubernetes 仪表板的其他替代方案https://kube-web-view.readthedocs.io/en/latest/alternatives.html
关于作者
Hicham Bouissoumer
— 站点可靠性工程师 (SRE) — DevOps
Nicolas Giron
— 站点可靠性工程师 (SRE) — DevOps




