shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数839
阅读:1553回复:2

【思维拓展课】k8s client-go进阶拓展之:sql化查询

楼主#
更多 发布于:2022-11-07 01:53
   临近年底,开的新课有点多,有的课程是为明年做准备的。先出个框架,大家不要焦虑
   本课程是短课程(10课时左右)、思维开拓课。
    学习是训练和认知纠偏的过程,通过训练来提高“自我进化能力”,并不是一味的知识点灌输,所以我们时不时的会开一些思维拓展课。
   我们在前面课程常用的是client-go 等方式来获取k8s资源。那么我们能否用类似sql的方式来查询呢?
   譬如:
         当我们输入 select * from pods where label.xx=xx  就能查询 到一堆PODS呢?


     今天课程就给大家带来实现思路和代码示例 ,分两个部分
1、SQL解析的处理(当然,我们要借助第三方,从头到尾自己写 没意思、没兴趣)
2、SQL解析和client-go的封装处理
    本课程不适合新手
第1讲:SQL解析第三方库的使用、ast入门 试听
开张课, 直接写代码。没啥好废话的

第2讲:初步封装、把sql解析为k8s资源映射(select)
依然是SQL解析。今天做个开头。

第3讲:区分select 字段和where 条件字段
当出现select * from pods where xx=xx时,我们怎么从代码角度区分字段类型

第4讲:初步完成where条件的收集
今天我们来演示下如何收集where条件

第5讲:设定gvr 等关键字段的where条件
为了配合client-go动态客户端 我们需要做一些设定

第6讲:通过“表名”自动推测出gvr
当我们进行k8s资源查询时,可以自动推断出gvr

第7讲:把SQL初步和client-go融合完成初步查询
今天我们完成初步融合。后面再做优化

第8讲:SQL和client-go融合(2):支持limit 条件 试听
今天我们演示完成limit 的支持

第9讲:SQL和client-go融合(3):反序列化为对象列表
今天沿着上节课 我们完成对象列表的反序列化

第10讲:FieldSelector和 sql where条件的结合 (演示课)
通过今天这课时,我们就可以根据FieldSelector查询k8s资源

第11讲:LabelSelector和 sql where条件的结合 试听
沿着上节课,我们支持label的方式进行查询
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数839
沙发#
发布于:2022-11-26 02:25
更至第8讲
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数839
板凳#
发布于:2022-12-14 02:21
告一段落
会讲故事的程序员
游客

返回顶部