阅读:2994回复:2
【思维拓展课】k8s client-go进阶拓展之:sql化查询
临近年底,开的新课有点多,有的课程是为明年做准备的。先出个框架,大家不要焦虑
本课程是短课程(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的方式进行查询 |
|
|