kom v0.1.3 已经发布,Kubernetes 操作工具

kom v0.1.3 已经发布,Kubernetes 操作工具

此版本更新内容包括:

SQL功能主要特点

  • 支持所有资源类型
    Kom 支持查询 Kubernetes 集群内注册的所有资源类型,包括内置的资源(如 Pod、Deployment、Service 等)和自定义资源(CRD)。无论是 Kubernetes 内置资源还是自定义 CRD,您都可以通过 SQL 查询快速访问。

  • 灵活的查询条件
    使用 SQL 查询时,支持常见的查询操作符,如 =, !=, >=, <=, <>, like, in, not in, and, or, between,方便用户根据需要进行筛选。

  • 简洁高效
    只需要通过一个 SQL 语句,就可以完成对 Kubernetes 资源的查询操作。并且查询字段默认支持 *,返回所有资源字段。

  • 支持排序
    您可以通过指定排序字段,对查询结果进行排序。默认按创建时间倒序排列,方便查看最新的资源状态。

使用示例

    // 查询kube-system、default命名空间下的pod,并按创建时间倒排。
    sql := "select * from pod where `metadata.namespace`='kube-system' or `metadata.namespace`='default' order by  `metadata.creationTimestamp` desc   "

	var list []v1.Pod
	err := kom.DefaultCluster().Sql(sql).List(&list).Error
	for _, d := range list {
		fmt.Printf("List Items foreach %s,%s at %s \n", d.GetNamespace(), d.GetName(), d.GetCreationTimestamp())
	}
 

在这里插入图片描述

查询 Kubernetes 内置资源

sql := "select * from pod where `metadata.namespace`='kube-system' or `metadata.namespace`='default' order by `metadata.creationTimestamp` asc"

var list []v1.Pod
err := kom.DefaultCluster().Sql(sql).List(&list).Error
for _, d := range list {
    fmt.Printf("List Items foreach %s,%s at %s \n", d.GetNamespace(), d.GetName(), d.GetCreationTimestamp())
}
 

在上述代码中,我们使用 SQL 语句查询了 pod 资源,筛选出了 kube-systemdefault 命名空间中的 Pod,并按创建时间升序排列。

查询 CRD 资源

sql := "select * from vm where (`metadata.namespace`='kube-system' or `metadata.namespace`='default')"

var list []unstructured.Unstructured
err := kom.DefaultCluster().Sql(sql).List(&list).Error
for _, d := range list {
    fmt.Printf("List Items foreach %s,%s\n", d.GetNamespace(), d.GetName())
}
 

在这个示例中,查询了 kubevirt 的自定义资源 vm,可以快速筛选出特定命名空间的资源信息。

链式调研查询SQL

// 查询pod 列表
err := kom.DefaultCluster().From("pod").
		Where("`metadata.namespace` = ?  or `metadata.namespace`= ? ", "kube-system", "default").
		Order("`metadata.creationTimestamp` desc").
		List(&list).Error
 

如何开始

  1. 将 Kom 集成到您的项目中,可以通过 GitHub 获取源代码并根据文档进行配置。
  2. 根据需要编写 SQL 查询语句,灵活筛选和排序 Kubernetes 资源。
  3. 使用 Sql() 方法与集群交互,获取查询结果。

安装

import (
    "github.com/weibaohui/kom"
    "github.com/weibaohui/kom/callbacks"
)
func main() {
    // 注册回调,务必先注册
    callbacks.RegisterInit()
    // 注册集群
	defaultKubeConfig := os.Getenv("KUBECONFIG")
	if defaultKubeConfig == "" {
		defaultKubeConfig = filepath.Join(homedir.HomeDir(), ".kube", "config")
	}
	_, _ = kom.Clusters().RegisterInCluster()
	_, _ = kom.Clusters().RegisterByPathWithID(defaultKubeConfig, "default")
	kom.Clusters().Show()
	// 其他逻辑
}
 

使用

    sql := "select * from deploy where `metadata.namespace`='kube-system' or `metadata.namespace`='default' order by  `metadata.creationTimestamp` asc   "

	var list []v1.Deployment
	err := kom.DefaultCluster().Sql(sql).List(&list).Error
	for _, d := range list {
		fmt.Printf("List Items foreach %s,%s at %s \n", d.GetNamespace(), d.GetName(), d.GetCreationTimestamp())
	}
 

总结

使用sql查询k8s有没有感觉非常简单? 其他使用方法请参考https://blog.csdn.net/zihuxinyu/article/details/143920930

本次更新内容

  • docs:优化 SQL 查询语句中的字段名称
  • test(example): 添加 SQL 查询功能测试用例
  • fix(callbacks): 修复各回调函数的错误处理
  • refactor: 更新字段哈希计算方法
  • feat(utils): 添加 FNV1哈希函数实现

完整的更新日志: https://gitee.com/weibaohui/kom/compare/v0.1.2...v0.1.3

详情查看:https://gitee.com/weibaohui/kom/releases/v0.1.3

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/325062/kom-0-1-3-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。