暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

又一款火爆k8s web管理页面KubeHelper

云原生CTO 2021-07-22
1224

点击上方 云原生CTO,选择 设为星标

               优质文章,每日送达


「【只做懂你de云原生干货知识共享】」

又一款火爆k8s web管理页面KubeHelper

KubeHelper - 通过 Web 界面简化许多日常集群任务。您可以轻松地进行搜索、分析、运行命令、cron任务、展示资源报表、过滤、git 同步等等。

KubeHelper并不是在 GUI 中显示 Kubernetes API 的又一次尝试。

并非试图更换 Lens、官方仪表板或其他类似产品。这是对 Kubernetes 开源社区的微薄贡献。KubeHelper 没有高度专业化的方式实现,但同时包含很多不同的功能,这些功能将在与 Kubernetes 的日常工作中非常有用。

动机

Kubernetes 是一个伟大的革命性产品。很多人多年来一直在研究和使用它,但经常需要手头有许多不同的功能和命令。每次在命令行中键入长命令时,都要在历史记录中进行搜索、写入别名等。当然,如果您愿意,您也可以这样做。

对于操作k8s无法就是三种,api、cli、ui,喜欢自动化的人大多数喜欢控制台,但是kubehelper没有太多的想法去取代其他的控制台。但是有时候控制台无法登录,或者历史记录没有保存,或者你在新主机下。或者其他很多原因。

有些公司有严格的规定,很多时候你需要转发几个 ssh交互才能登录到控制台。或者通常您的控制台访问权限非常有限。

许多桌面客户端需要证书才能连接到服务器。并且将来自集群的证书保存在本地机器上并不是 100% 安全的。

如果无法在本地计算机上安装客户端以访问集群,您又需要创建别名或从片段中复制命令怎么办。我经常看到人们在寻找某些 kubectl 命令,项目发布时的功能介绍使用了几种不同的命令,但有数百种命令和数千种参数。当然,所有这些任务都可以自动化,当然集群的每个用户/管理员都已经以一种或另一种方式为自己解决了这些任务,但我相信还有一些人还没有完成。

在Kubernetes集群中搜索也是一样,有时候你需要知道去哪里找,如果资源很多,那么找到你需要的就不是那么容易了。很多人不想写长命令,所以决定为许多常用资源创建“搜索”。于是,KubeHelper出现了,连同开发过程中的功能想法也一起出现了。

KubeHelper也尝试从另一个角度来看资源。许多 GUI 解决方案按命名空间显示资源,还有一些更有用的功能,这就是图形界面的灵活性约束的地方,要执行与仅显示命名空间中的资源列表不同的事情,您又必须转向控制台。例如标签、查找选择器、查看 RBAC 等等……

然后有了帮助社区在单个界面中组织许多命令的想法, kubectl、插件、实用程序并制作图形 Web 界面以使用命令行,实现这些功能将在 Kubernetes 集群的日常工作中很有用。

一般原则和概念

目前,KubeHelper准备了 3 个安装选项:kubectl、Helm、Terraform。稍后会将 KubeHelper 添加到公共 Helm Chart Repository 和 Terraform Registry。

KubeHelper 可以成为你日常使用集群的非常强大的助手,这完全取决于你给它多少权限。默认情况下,KubeHelper 安装有读取和查看权限(获取、列表)。因此,您不会在集群中使用默认设置破坏任何东西。但是在安装过程中,您可以根据需要更改 ClusterRole,直到集群管理员状态。

详细配置参考上「wiki:https://github.com/KubeHelper/kubehelper/wiki#Search」

配置和命令以 TOML 格式存储。在我看来,这种格式对于此类任务非常方便。同样,您可以在Wiki上阅读详细说明及其工作原理

功能和 Web 界面的简短概述

仪表盘

仪表盘来收集有关集群的一般信息。集群运行的时间、主机(节点)、内存、有关主机(节点)的集群信息等也在仪表板中可见。

还会显示 docker 镜像的数量、名称和大小。

搜索

通常,您必须在 Kubernetes 集群中搜索某些内容,为此您需要知道在哪里查找并经常编写重要的脚本或命令。在整个集群或特定命名空间中搜索关键字和所选资源可以解决此问题。

原理非常简单直观。选择我们要通过关键字查找资源的命名空间(all = all namespaces)。选择资源,点击搜索,应用过滤器。此外,当您单击“Raws”列中的按钮时,您可以查看各种格式的资源,如 Java POJO、YAML 或 JSON。

您可以在Wiki上阅读所有功能的详细说明和操作原理。https://github.com/KubeHelper/kubehelper/wiki#Search

Ip和端口

名称不言自明,您可以在整个集群的 pod 和服务中搜索 IP 和端口。当您单击找到的资源时,将显示有关该资源的详细信息。

安全

安全分为6小节。每个部分都有相同的按钮,用于选择命名空间和搜索其中的相应资源。

另外,当您点击“Raws”栏中的“Raw/Yaml/Json”按钮时,您可以查看各种格式的资源,Java POJO、YAML 或 JSON。

「角色」部分:在单个名称空间或所有名称空间中搜索角色。查看每个动词的主语和角色规则。过滤和分组结果。

「RBAC」部分:构建基于角色和规则的资源访问矩阵。过滤和分组结果。

「Pod」 安全上下文部分:在单个命名空间或所有命名空间中显示 PodSecurityContext 对象。

「容器安全上下文」部分:在单个命名空间或所有命名空间中显示 ContainerSecurityContext 对象。

「服务帐户」部分:在单个命名空间或所有命名空间中显示“服务帐户”。

「Pod 安全策略」 部分:在单个命名空间或所有命名空间中显示“Pod 安全策略”。

标签注释选择器

搜索已分配资源的标签、选择器和注释。您可以过滤和分组结果。

分组选项卡:根据找到的标签,选择器和注释将被聚合和分组

命令

「命令」 部分的想法是使 KubeHelper 对每个用户都具有灵活性。每个用户都可以从不同的控制台执行自己的 kubectl 和 shell 命令并查看执行结果。您可以从 git 存储库中导出您的命令集合等等。KubeHelper 已经有很多现成的命令。可以在Wiki上找到详细说明。

「命令」 部分:该窗口分为 3 部分,可过滤和搜索的命令、编辑所选命令的窗口和输出执行结果的窗口。

「管理」 部分:在此部分中,您可以编辑和创建自己的命令,以及查看现有命令。

「历史」 部分:在此部分中,您可以看到所有已执行的命令及其执行结果。为方便起见,历史每天都在保存。包括几个方便的过滤器。

定时任务

「Cron Jobs」部分的想法是使常规任务的执行、安全检查、构建成为一项更简单的东西。可以在Wiki上找到详细说明。

「job」 部分:该窗口分为 3 个部分:可过滤和搜索的命令、编辑所选命令的窗口和创建新“cron job”的字段。带有活动和停止的“cron job”和控制按钮列表的表格可以方便地使用。

「报表」 部分:为每个“cron job”创建一个文件夹,每天将在其中保存“cron job”。并且有几个方便的过滤器使用。

配置

「配置」 部分的想法是使用户能够将他们的配置文件与 git 同步,并且定义或更改所需的 cron job也更快。它还包含用于管理自定义存储库的功能。可以在Wiki上找到详细说明。

版本

KubeHelper 已经预装了 kubectl,大量的插件、实用程序、shell 等。此选项卡显示预装程序的完整列表、它们的版本和其他信息。

向社区提问

您会首先添加哪些新功能?哪些新功能将使您的日常工作更轻松?

随时期待你的问题提交与开发功能建议

KubeHelper:地址:「https://github.com/kubehelper/kubehelper」

参考:

https://kubehelper.medium.com/kubehelper-simplify-many-daily-kubernetes-tasks-through-a-web-interface-8133786e9d63


文章转载自云原生CTO,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论