自我介绍一下我是来自DogCloud的Peter 是一名研发今天给大家带来的topic是AI-复能的K8S运为然后谈谈一些我们的探索也做一些这些知识的一些科普吧咱们K8S的SRE日常基本在做三件事要么是各种资源的一个创建比如说一些应用要么是一些日常寻找的一些运为动作要么是对问题的一个诊断和排查大模型和AI-GC对这三件事能够帮助到什么呢我们来看一下先看第一个事就是资源的创建咱们作为资深的压抹工程师也经常记不住语法然后下面来考考大家这么一个题目 创建一个My Circle然后是STS 有资源限制 有Secret 有Redness 有PVC那大家能够完整的忙打下来的同学其实是非常的不容易那我们把这个自然语言到压抹语言的这么一个转换的工作交给AI来看一个叫Couple Control AI的一个开源项目看看它的一个效果左边是英文的Demo右边是中文 双语我们刚才的题目用对话的形式发给大模型然后大模型思考的片刻创建了除了压抹你看有STS 3306端口的探针Secret等等 很完整然后Apply下去确实也软领了然后达到了一个辅助的效果那第二个AI能写压抹它又如何帮助我们日常的一些运为动作呢然后再考考大家我们去找出日治的末尾带有Ala关键字的这么一个pod那你会怎么样去做这个事给你们五秒钟好 那我们来看一看下面我们自己来写一段代码只有时航不到用这个简单的拍种代码来实现这个模法最关键是前面Promote的一个关键字关键词 提示词它让大模型认为自己是一个Communities的一个生成器然后去产生一个Batch脚本最后我把这个脚本这边有点遮挡 执行了它这段Promote其实也是精心设计过的所以AI时代很多的模法来自于Promote Engineering我们看看这段简单代码的执行效果还是把刚才日治的末尾带Ala的pod这个问题丢给它然后AI就给出了一行的这么一个脚本然后执行一下果然在一个NS下面找到了这个符合条件的pod但是大家知道大模型它有幻觉 对吧有的时候缺了GBT会睁眼说瞎话那个GBT3.5它有的时候会告诉我这个答案但是我们都知道couple control它其实没有刚刚grab的参数 对吧怎么办呢这个时候我们在刚才的简单实行代码里面做一点小小的一个二次模法为了避免幻觉的产生我们要加入一些鲜艳知识我就在这个代码里面加入了一些我们认为的叫做参考样例这里面有一些正面的例子叫它应该怎么做一些负面的例子叫它不该怎么做比如说我告诉它couple control其实没有刚刚grab的这个参数当这些参考信息越来越多的时候我放在代码里面其实就不现实了而且promote也装不下 对吧有长度限制这个时候就需要有vector store去辅助我们先把鲜艳知识放到相量数据库里面去来一个新的问题我到相量数据库里面去找它最尽适的N个鲜艳知识一起作为promote然后再丢给右边右边是一个用Combinatius的一个Dominionologyfinetune出来的一个更懂k8s的大模型这样子结合所以为了得到更精确的答案知识库里面其实是一个最常用的高性价比的一个方式农技平台我们很多人都用过它的目的是用UI和流程的标准化去降低Combinatius的一个使用门槛我们再通过叠加AI让便捷加倍比如说这边对话创建了一个小游戏的应用然后它创建出来了但是好像没有Running我做了一个简单的一个诊断AI做了一些建议接下去我还是用对话的方式去修复镜像 修复里面的错误这就是AI和平台工程结合了一个很小的例子好 第三个是寻检和排帐我这里介绍了一个很受欢迎的一个开源项目它是一个自动化寻检和这么一个整段的工具叫KSGBTSTAR也不少一方面它的原理一方面通过购物园的代码去分析K8S的各种resource然后进行一个整段另一方面它把出塞出来的问题和错误发给了大语言模型去让它去做解释和解决甚至是一些解决的建议这边也是一个简单的demo我们可以看到其实好像是有一些的小问题然后执行K8S Analyze然后发现了好几个问题有一些还比较隐蔽比如说像Service Mail Active Endpoint或者说Headless的ServiceSTS的Headless Devices不存在接下来看看Explain的一个参数它其实是能够做一些解释的还可以切换中文的一个语言可以得到一些1234的分析结果还偷偷试到KSGBT其实还有很多的一些别的形式比如说operated的这种常驻方式以及它有定时的常驻的一个扫描还有一些避免Secret上传到云端有一些mask的能力还有一些dashboard的比较handy能够有让你全面的overview如果我们不想用云上的OpenAI我们想自己host本地的大模型这边有两个比较流行的一个项目来做例子它往北是暴露出OpenAI格式的API往南它其实是可以切换不同的模型支持不同模型的格式我们拿VRLM来做一个例子我这边把VRLM跑起来然后暴露OpenAI的格式然后跑一个13B的模型它暴露在8000端口接下来还是KISGPT它去对接8000的端口然后去做GangGangExplain去做解释然后可以看到本地的13B的模型也做出了一些1234的分析和解决但是上面的AI它只是一个猜测原因它无法验证和深入因为它很多时候是focus带一个resource但是一些比较复杂的问题比如说POD起不来大家都知道POD起不来原因非常多我们拿一个例子它可能是因为它的PVCPOD所依赖的PVC是pending然后它的Storage class还可能写错了这种问题一次AI的对话其实是找不到更应的对吧这个时候就引入了agent的概念它不单单是空谈的对话同时它借助不同的plug in真正的去执行一个动作拿到结果以后再让AI去做下一步的推导你想想看如果说没有agent我们以前怎么做就问一下缺的GBT给了几个建议我们执行一下再把结果返给它现在由agent的t我们把这整个流程一步一步的去做掉了我们这边就拿一个开源项目AutoGBT来做一个代表性的demo给它设一个目标找到一个PODpending的一个look-off第一步它让我建议我describe并且去执行了发现了有一个unbound PVC接下去它说去get PVC 发现了pending接下去它去describe PVCstorage class missing接着它尝试去创建它这些动作都是由AI自己一步一步的推导自我的去推演出来的所以因为我们知道POD的pending的原因有无数种大模型它是靠拆它不可能一字形拆对但是通过它实际的一个执行和action一小步一小步的迭代逐渐深入就能够做到了好 最后是几个咱们有聊到的或没聊到的一些AI和Comrandis运为相关的一些开源项目以及我demo提到的一些东西分享给大家这些小小的尝试也能够希望给大家带来更多的灵感好 谢谢