大家好 今天我给大家来介绍一下Signode然后还有一些方向上的一些功能的一个深入介绍重点的话会放在近期的一些功能这边我先做一个自我介绍就是我这边是Docloud开源团队的负责人然后在社区里的话在Kubernetes项目主要是Signode的reviewer和Cruidium的reviewer我之前的话是在Docloud这边做一个一个私有云项目然后主要是负责安装器和DS等一些方向这边的话是今年的两次Signode的介绍在之前的CoupleCon上一个是在北美的CoupleCon就是在近期主要是介绍了一下1.23块的一个路线图然后之前在北美的在欧洲的CoupleCon上1.22相关的一些介绍然后这边都有一些视频然后还有包括当时的BBT首先我来介绍一下就是Signode这块的一个自责范围然后还有就是当前的一些工作以及最终我会再介绍一下如何去参与开源这块的一些贡献这是今天的所有的议题Signode这块的话它的核心领域包括了CoupleLite节点和POD生命周期以及资源管理还有容器运行时然后入途所示其实CoupleLite就是这个节点上的一个管理的agent然后它主要跟OS去沟通的话包括了CRI然后CNR CSI以及它的Devast plugin去管理它的节点上的一些设备同时去管理当前节点上运行的所有的容器我在几点二上专门画了一下CNRD因为目前的趋势是大家在从Docker切换到CNRD上这边主要是Signode这块的话是一个相对垂直的一个组织然后它主要负责的是容器组和组织资源的交互它下面会包含到很多指向其实CoupleLite的话是CoupleLitix里面的一个本身里面的一个内容然后continental runtime这个interface下面还有一些对应的一些其他的continental runtime包括了一些比如说的continental D等等然后node problem detector也是它的一个指向也是在coupleLitix这个组织下面的一个项目然后还有一些CRI的工具等等这些都是signode所负责的一个范围然后我来介绍一下这边的一个signode的路线图1.2也就是说今年4月到8月发布的这个版本然后就8月份发布然后4月到8月是它的一个开发周期然后这里面的设计稿主要包含了下面的列导的这些内容然后按照方向做了一些划分然后其中比较重要的一个方向就是支持更多的负载然后这边包括了一些关于一些swap的一些支持然后还有一些CPU的一些policy等等然后通过这些策略包括什么HELG配置的一些设置和资源的一些管理然后这些能力的话可以让更多的powder上到coupleLitix上面来然后还有一些可高性相关的这个其实主要是对资源的做一些限制通过尤其是现在Linux的不断的发展然后sqlv2也越来越多的它的一些功能也可以应用到k8s里面来然后还有一些是关于安全性这块然后主要其实是rules这块的一些事情然后还有就是其他的一些功能的废弃因为k8这边有一些比较老的功能然后但这些功能可能在适用过程中反馈会有一些问题之后的话是这块我们做了一个简单的回顾在1.2中大概总共有就是我们刚开始试图去跟进的功能包括了24个然后其中有13个是完成的然后还有一些在这个过程中可能比如说没有完整的推进没有完全完成但这个数字已经是创造历史的就是24个提案已经是在历史发布中期中最多的然后还有就是我们在这个过程中大家都比较规范然后很多开发在实现的过程中就已经加入了一些一度一测试然后就是很少有功能会被要求去添加这些测试这一点是非常好的然后还有一些比较小的KP在release周期的比较早期的时候就已经合入了然后这个也是值得表演的一个地方然后另外的话需要改进的地方也有很多就包括我们可能需要设置一个软的一个代特兰这样的话可以方便我们在管理上尤其是当codefraise来临之前有一个预期哪些功能可以进入到这个版本如果在这个代特兰之前这个code还没有ready其实到codefraise的时候我们再去做很多事情这时候是有风险的然后我们做了这么一个在1.23里面做了这么一个流程上的改动然后的话就是API change这块尤其是有一些API的增加的情况下那么需要尽早的提出来这种API的review的申请尽早的在周会里面提出来然后也有更多人去参与到这个API的review中然后也能有效的降低风险最后还有一点就是pr这个机制社区里现在已经在实现的这个关于一个KEP的一个审核的一个机制里面有很多默认的问题然后通过回答这些问题比如说如何去关闭这个功能如何去从一个开启功能之后如何再关闭会不会有一些副作用等等然后通过回答这些问题然后你能很好的了解到你当前要做的这个功能能不能很好的服务到社区这个机制的话是非常好的我们后面会更多的去使用它然后最后一个就是我们有时候会提一些exception就比如说quotifier之后我还需要把一些东西加进去这时候可能需要开一些exception出来然后去审核但是我们在提审核之前尽量是所有的工作都已经完成了否则的话可能也会带来一些风险1.23的话也就是正在进行中的就是Coopercut中国的话是在1.23刚刚发布之后开的所以就是你看到的时候可能1.23已经发布了但是我这边录制视频的时间可能会比这个稍微早一点所以可能时间上会有一点错位但是这边的话是讲一下1.23之前已经被纳入到里面的一些功能然后这里面的话其实比较重要的可能是包括了一些比如说支持GRPC的这种探真然后还有下面一些调试上的一些功能的提升就之前临时容器是一个Alpha功能是默认关闭的在这个版本里面会也默认打开还有一些比如说secret相关的secret pool的image这块的一些安全性的增强然后还有一些这种智能的office的一些功能尤其是VPA这块就是inplace the pool的update这块的话其实是有一个很强的增强的但是这个PR目前还没有合进去目前有大概率能合进去只能说希望这个功能尽快的给大家进面1.23这是我们在11月9号的时候去release steam这边去跟进所有功能的一张列表里面可以看到有几个功能是在risk中的然后剩下的大部分是还OK所以具体的话我们到时候还是要根据最终发布日治里面的情况来看下面我挑几个比较重要的功能来介绍一下然后我觉得临时容器这个功能还是相当不错的然后它在炮子的生命周期里面增加了一个临时容器然后这个临时容器的话有很多场景可以用到包括调试的时候包括你有一些这种需要临时的去启动一个容器去在炮子里面做一些操作的时候运营或者是什么一些升级等等场景都可能会用到这边是一个炮子的生命周期然后可以看到就是我这边是主要列举了一些比较重要的阶段就包括进行拉取啊然后启动Sandbox然后Init container 启动还有一些在主容器启动后会有一些Start-up的谈真或者是Liveness和Renews的谈真然后Sidecar的话一般它跟主容器是一个生命周期的但是临时容器它有一些不同它是容1.16以后引入的然后它可以在炮子启动之后去临时加上去这么一个临时容器然后它为什么能变成Beta呢然后这里可以看到就是它是走了这个PR2的流程的然后它里面其实有完成了很多的事情包括了这边提到的它已经就是Alpha版本已经发布了超过两个版本然后增加了一些比较必要的Metrics然后还有就是它增加了一些Linux命名空间的一个指定模式这个其实是CRI那边也要配合去支持的然后还有就是在CRI这边Cruc control支持了Cruc control debug这个命令目前虽然是Alpha的但是其实它已经支持了很多功能了最新版本应该已经不是Alpha了已经是Beta了然后还有就是在它这边文档这块也做了一些增强然后如何进行排帐然后增加了一些一图一测试这张图的话可以看到这是Kubernetes这边的一个功能开发的一个主要的一个大流程就是首先你提出一个功能的话一般来说我们会把它放在一个Alpha级别的一个功能然后这时候它一般来说是摸人不开启的然后如果需要开启的话你可以通过功能门的方式去配置对应的那个组件把它的这个功能打开然后等到它满足了一些要求以后就是像这边这个临时容器满足了这些比如说一图一测试都有了文档也比较完善了以前必要的Matrix也有了然后有一定的用户反馈之后然后会把它升级到Beta然后升级到Beta一段时间以后也是类似的通过大家的一个反馈的过程然后如果觉得它达到了一个接的标准那么可能这个功能就会接但是如果在Alpha或者Beta的过程中它的反馈可能不太好也有可能会被废弃就像PSP一样它可能后来就被POW的Security这个方案去取代掉然后最后会被移出然后的话一个比较重要的功能这个VP目前这个也是在进行中的一个比较大的一个功能因为它设计到的东西比较多这个是来自于官方的一个设计它的设计稿里面的一个价格图它其实不光设计到Signal里面还包括调度等等一些地方然后因为它设计的面比较广另外就是它的这种更新是实时性的直接去更新而且有一些不像后兼容的一些就不像前兼容的一些东西在因此它的流程周期也会比较长但是它有什么好处呢就是VPA相比于HPAHPA就是众所周知就是当一个POW的它的使用率比较高或者是它的请求比较多的情况下我们通过横向的扩展然后增加应用的负载能力但是VPA是怎么做的呢VPA是直接去更新了POW的内存限制和CPU的一些限制然后它跟HPA去做一个对比的话其实它里面是不需要做任何重启的而且是一个热更新就是它直接去操作了比如说C Group或者是一些资源限制的东西然后让它POW的响应能力它的资源使用量可以直接得到一个提升然后一个就是它的扩容响应会更快因为它是实时响应的没有这个能启动的过程它直接修改了资源限制达到了跟它的目标比较接近的一个状态而不是通过数量的调整来达到的另外一个就是在一些尤其是资源浪费的一些场景下面就比如说你初始设置的资源是比较高的情况下然后如果我们通过一些智能的手段监测到你没有达到你所申请的资源的话我们可以更快更好的解决资源浪费的问题尤其是这种解决方法里面不涉及到容器的启停这样会更好的实现效果但是这里面也会潜在的存在一些问题就包括一些相互兼容性还有就是所有的过程中会不会出现一些不支持或者是臭这是它的一个问题但是显然这个VPA能解决到我们很多人遇到的一些弹性的过程里面的一些问题最后来介绍一下目前还在进行中但是1.23目前来看是还没有被它可能是会推迟到1.24的发布中然后它在1.22里面是有一个Alpha的支持就是swap能开启之前的版本其实你swap如果开启的话那个cool light是无法启动的然后比如说在cool light里面也会做一个检查如果你的swap开启的话其实它的安装也会失败除非你去跳过这个检查然后这块的话随着就是越来越多的应用准备上运然后有些应用它又比较依赖于swap对于swap其实大家还有一些误解就是我这边给了一个链接其实大家有兴趣可以去仔细研究一下因为swap它有几个比较这边来简单讲一下这个问题就是说首先是swap在早期确实有一些问题尤其是在早期的一些内核版本上面确实存在一些bug或者是椅子的一些问题但是在新版本里面其实swap这块已经越来越晚散了这是一个然后另外一个就是swap跟有些人理解的就是它可能表面理解就是一个磁盘这块作为内存去一个缓冲但是实际上它的性能并不是像并没有把内存降速就有些人他可能理解的swap是跟它的速度如果你有比如说4G的内存然后有4G的硬盘作为swap那你的速度会不会就变成了二分之一的速度事实上是不会的因为swap的使用它是一个内存调度机子它是把一些不常用的内存放到了swap里面的区间里面去而不是像普通的内存去那样去使用所以这里面可能是存在一些误解的其实建议大家在开启这个功能之前首先去了解一下swap的一些场景然后它的一个进展的话目前在1.2里面它是一个alpha的功能需要你手动去打开然后在1.23里面其实大家已经在做了一些事情比如说增加了一些metrics然后包括支持系统的一个预留但是目前有些片还没有合进去然后因为code phrase的时间也比较紧张所以1.23里面可能还不会beta到1.24可能会变成beta具体的链接可以看到下面的一个kp然后刚才介绍了这么多功能作为一个研发你如何去参与到这些开发过程中呢我这边来介绍一下就是关于signal的一些日常的一些事情首先来说最重要的也就是signal的立身之本是它的稳定性所以它的贡献的要求其实是稳定压到一切也就是说它更希望你多为这个signal去写一些测试然后修复一些bug或者是提一些你当前遇到的一些依旧这些其实是更重要的而开发功能可能是相对次要的但是当然也会就是如果大家有一些需求然后去提卸功能当然也是欢迎的但是它有一个大前提就是一定要稳定另外一个就是说它目前有很多CI去监测这块的一个就是相关的一些稳定性然后这块的CI其实它的健康状态是非常重要的然后维护signal的CI的这种健康是他们日常工作里面一个重要的组成部分就是提到这个就是说signal的里面如何去开发一些功能其实社区给了一些意见就比如说现在Linux的内核在不断的进步然后有一些新的功能那这些功能有没有可能预用到kooled里面这个可能是一个方向但是在内核相对稳定的状态下其实kooled里面可以增加的功能是比较有限的然后除了刚才提到的这些还有一个就是怎么去改善大家在kooled的一些使用或者是相关的一些东西或者监控的时候我们对kooled提出一些要求增加一些指标或者是日治这块其实是非常欢迎的就是怎么去提升大家了解一个节点它的运行过程然后怎么去把这个东西监控的更好然后让你的集群更加稳定然后社区里的话大部分人的时间也是相对比较有限的所以我们会把注意力关注在一些高于限级的事情上面所以希望大家在贡献的时候能够抓住目前的这个贡献优先级然后这样的贡献可能在社区里能够更早的被响应除了tpr和这种看一宿还有什么是可以参与到这个sig的这里其实我觉得比较重要的一个就是参加sig的这个周会还有就是有一个signal的有一个紫周会就是它有个subgroup是关于ci的ci健康这块的然后重点关注的是相关的一些测试的运行状态就比如说一些临时输错的就它不是每次都错可能但是它经常会发生然后那这种问题的话我们去调查一下原因然后让ci更健康其实参加这两个会的话其实能够让你学到很多内容因为sig的一些主要负责人在周会上的活跃度是非常高的然后一个的话就是也不一定是自己要去tpr你也可以去看一下目前社区里别人提了哪一pr了解一下目前的这些pr的情况然后去参与一下prreview然后在e-show里面的讨论里面也可以更多的去表达一下自己的观点包括自己的一些最佳实践甚至可以尝试去写一些blog然后去投到社区里面来然后去发表最后一个的话就是我觉得就是二法功能有很多然后大家其实可以鼓励大家去使用这些新功能然后这些新功能将来能够beta能够接有一个很重要的要求就是说他收到足够多的反馈然后如果你能在真实的环境中去使用这些二法功能或者是一些beta功能也是对社区的一个非常大的贡献就是如何参加这个会议这边给出了几个链接但是时间对中国这边来说是不太好的一般都是周二凌晨和周三凌晨一点然后所以中国这边的参与度相对会比较低一点对这块是比较痛苦一点的但是slag的话其实还是比较活跃的然后尤其是中国的下午的时间时段和一大早的这个时段其实这个slag还是有一定活跃度的最后就是我这边个人给大家一个建议就是如果你是刚参与的一个开源贡献者那其实你可能把目标订单比如说你去成为一个member然后可以多花时间去学习然后有一些good first issue或者有一些这种have a wanted这种label的bug和e-show可以去看一下然后还有就是这种测试里面的刚才提到的这种CR里面的一些错误可以去了解一下然后通过这些有价值的做这些有价值的事情然后来申请一个member当然如果你是一个资深的演发那你可能或者如果你想在开源这块做一些更多的事情那可能成为reviewer或者是approver可能会变成一个目标吧然后reviewer这块的话其实并没有一个非常严格的标准虽然社区底是有一些基本的标准就比如说你在社区活跃度有大概半年或者是三个月以上的一个活跃时间然后同时参与了很多e-show然后在一些pr review过程中是一个主要的pr reviewer但是这些其实是一个必要条件但是其实你怎么去做到呢其实是你自己要把自己先当成一个reviewer按照reviewer的标准去要求自己然后参与到这个sig的一些日常活动中同时能够参与到一些功能开发和完善里面去就是如果当你的对这个sig有一定价值了以后其实成为reviewer是一个比较容易的事情但是如果是你的目标更高一点其实这块的话对你个人的能力的要求和对你个人对整个项目的帮助包括对其他的这种开发的一个帮助是非常重要的你可能要了解到整个sig的一个发展情况然后能够在一些feature里面做一些决断或者是能够做一些解决方案相关的一些事情包括给出一些比较合理的路线图合理的建议然后能够推进一些功能的一个完成然后当你能做到这些的时候肯定你也可以能成为这个方向的一个uproar但是目前看还是有一定难度的然后我最后提一下就是参与到社区的一些活动中然后我参与了一个叫signal的bug scrub party这个其实是当时signal的这边牵头组织的一个活动然后这个活动是做什么呢其实就是当时6月份24号5号两天然后当时社区里面有大概有400多个E9手本状态然后有200多个P2手本状态signal的这块有这么多E9和P2但是它有很多东西可能没人回复然后也没有人梳理它就想花两天时间把这些问题做一个比较集中的一个回复和梳理然后它就用了一个这种活动的方式然后它组织了就是三个队就是比如说它是按时区分了一下队比如说欧洲这边 然后亚洲这边 然后还有北美这边然后主要是按这个东西来分了一个队然后其中它用了一个tweaker party的一个工具这个工具可以把所有的任务分成12个玩家然后每个区域的话负责其中的4个玩家也就是说我们这边的话其实是负责的就是player1到player4这4个玩家然后向右边这个图 每个这个方向的话大概会有40个左右的一个E9然后通过这个两天时间把这些E9做一个 主要是做一个分类其实这里面有一个步骤就是后面我们看一下这个参与的人就是我们最开始的话是着急了大概有每个区域会着急一到两个队长然后会着急大概三个或者是更多的一些就是说帮助大家来去做这个事情的人然后队长的话负责苏利和一些分工或者是相关的一些事情然后同时我们希望有更多的人参与进来然后在这个过程里面由这些温头去帮助大家去做一个分类然后这个主要的过程其实我们当时建了一个群然后中国这边的话是有我们大概十几个人然后我们公司这边是那个市民孟娇跟我在参与然后这18个人的话我们在这个群里面其实发了一下这个公告其实主要的一个内容主要可以做的事情就是包括去review这个E9然后能看一下这个E9上面打的label是不是都是正确的比如说它优先级是不是正确 合理然后它的类型是bug或者是feature还是一个document还是一个cleanup然后如果它是个bug的话那我们是不是能尝试去重现一下它然后如果能重现的情况下的话我们是不是能修复当然只有两天时间修复问题并不是一个最终目的其实更多的是我们希望能把这些E9看它在最新的版本里面是否还是个问题是否已经被解决了或者是有没有类似的问题会不是一个重复的需求或者说它的label是不是之前的人打错了然后类似的然后我们通过这两天的努力最后得到的一个结果就是我们关掉了其中的136个E9然后有200多个E9有了一个更新然后这样的话之前的话可能比例是比较低的就是90天内E9是有回复的这个比例是非常低的但是经过这个活动之后有96%的E9都被更新过至少它有一个新的变化旁边这个图的话可以看到就是说所有E9它被更新的时间比如说90天内有更新的曲线是非常好看的好 谢谢大家