K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

时间:2022-10-24 01:04:31


写在前面


  • Monokle Desktopkubeshop 推出的一个开源的 K8s IDE
  • 相关项目还有 Monokle CLIMonokle Cloud
  • 相比其他的工具,Monokle Desktop 功能较全面,涉及 k8s 管理的整个生命周期
  • 博文内容:Monokle Desktop 下载安装,项目管理,集群管理的简单介绍
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


Monokle Desktop 是一个 100%开源K8s 可视化工具,可用于 编写、分析和部署 Kubernetes 配置,包括从创建到验证再到部署的整个配置生命周期。

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

在官方文档中, Monokle Desktop 这样介绍自己:

  • 快速了解你的清单、其包含的资源和关系的高层视图。
  • 利用 Git 来管理你的配置的生命周期
  • 使用 OPA 策略规则验证资源
  • 轻松地编辑资源,而无需学习或查找 yam 语法,并查看更改应用情况
  • 重构资源,保持名称和引用的完整性
  • 预览和调试用 kustomizeHelm生成的资源
  • 可视化 CRD 中定义的扩展资源
  • 比较资源版本与你的集群,并立即或通过拉动请求应用修改。通过拉动请求应用修改
  • 使用 Monokle 的模板系统创建多步骤表单,以快速生成 清单

下载安装

通过下面的路径下载,访问以获得最新版。

https://github.com/kubeshop/monokle/releases/

然后运行安装程序即可完成的在 windows 上的安装

安装之后需要提前配置好 kubeconfig 文件,位置为默认位置。

PS C:\Users\山河已无恙\.kube> ls

    目录: C:\Users\山河已无恙\.kube

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2023/1/14      7:48                cache
d-----         2023/2/13      4:48                http-cache
-a----         2023/1/27     20:27           5641 config

PS C:\Users\山河已无恙\.kube> cat .\config
apiVersion: v1
clusters:
- cluster:
.........................

之后便可以双击启动, 通过 Monokle Desktop 我们可以像使用 编码 IDE 一样,开发编写 YAML 资源文件,然后动态应用集群,开发测试,持续集成部署,同时可以对 YAML 文件做版本管理,也可以实时查看集群的状态信息。对于常用的资源可以通过 表单的方式生成。

所以在下面的介绍中,我们分两部分功能来介绍。

项目版本管理

Monokle 有四种不同的方式创建一个新的项目:

  • 通过本地的静态文件目录构建一个空的项目
  • 从头开始构建一个空的项目
  • 通过模板构建一个项目
  • 从 远程 git 仓库获取一个 项目

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

这里选择第四个,导入了之前搭建 k8s HA 的相关资源的 一个远程 git 仓库

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

导入之后,点击进入项目

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

Monokle 会解析当前项目,扫描整个项目目录,整理分析资源情况,整个项目的资源构成,按照 API 类型整理

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

同时会 对 Helm Chart ,Kustomize 管理的 YAML 资源文件进行扫描分析

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可以通过 对应的 API 直接定位到对应的资源文件,也可以直接修改后应用资源文件

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可以通过 diff 看观察集群当前应用资源和本地的静态 YANL 文件的差异

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

默认情况下,会对资源进行合规验证扫描,有异常的情况会做特殊标记,并提示相关信息

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可以通过 View validation errors 页面查看详细信息

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

通过设置可以配置相关的验证规则

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可用通过页面工具实现简单的项目 Git 版本管理

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

资源文件创建

Monokle 中,YAML 资源文件的创建,可以通过不同的方式,可以直接通过表单创建,通过关键的数据生成的一个 YAML 模板文件,也可以通过模板插件来实现。

表单的方式生成

创建一个新的 pod 资源模板,通过表单填写一些值生成,并且放到 当前 项目 htlm 目录下,创建好之后我们可以对当前 YAML 资源模板进行修改。

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

模板插件的方式生成

默认情况下没有任何模板插件,可以编写好通过 git 仓库获取,或者通过 本地指定目录配置

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

模板方式需要提前配置模板插件,需要下面四个文件:

  • Monokle 模板配置
  • 定义表单模式
  • 定义表单 UI
  • 带有占位符的 Kubernetes YAML 清单

通过仓库获取,需要编写好上传,这里我原本想用 官方的 Demo 来体验一下。但是不知道什么问题,一直导入不进去,时间关系没有研究

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

地址在这里,感兴趣小伙伴可以尝试

https://github.com/kubeshop/monokle-default-templates-plugin.git

集群管理

点击连接集群,可以直接进入集群管理页面

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

在集群管理页面可以查看集群的当中状态,包括对象资源,计算资源,以及对象资源的简要信息,状态,部分资源的监听信息、集群相关信息等。

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可以直接查看相关的资源信息

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

可以查看其前置依赖和后置依赖链接

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

后置链接依赖

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

对应 资源的详细信息,日志等

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

嗯,关于 Monokle 桌面端和小伙伴分享到这里,博文只是简单介绍,好多功能还待探索,Monokle 结合和了 K8s API 对象资源的编写、版本管理K8s 实际的集群管理,同时提供了常用资源通过表单生成,是一个功能较全面的 K8s IDE

官方帮助文档地址

https://kubeshop.github.io/monokle/

博文部分内容参考

文中涉及参考链接内容版权归原作者所有,如有侵权请告知


https://monokle.io/

https://github.com/kubeshop/monokle