非常高兴能够在这里给大家分享CoupleSpray稍等一下 我们的教训调到第一页这里有刚刚有个群二维码关于CoupleSpray有一个新的小组然后CoupleSpray是一个CoupleNetix神明周期管理的这样的一个软件它已经有一段时间的历史了如果我是这个项目的这样的一个贡献者如果遇到一个预想问题欢迎随时打断我们可以共同来探讨那我先简单的介绍一下我自己 我叫延开然后在GitHub上有的是这样的一个监狱兔的这样的一个形象我是CoupleSpray这个项目的approver也是到Cloud的这样一个资深工程师在我个人的一个从业经验里面我部署了大量的各种各样的集群有很多不同的环境这就是为什么呢也是一个为什么这个原因我们选择CoupleSpray作为一个非常重要的这样一个技术投入方向因为它能够很好的适应各种各样的环境首先我先今天希望能够对于CoupleSpray一个深入浅出的这样的一个分享首先我会做一些简短的介绍让大家有一个对CoupleSpray这个项目有一个初步的认知然后做一些深入的这样的一些理解另外对于最近的一些新的功能有一些highlight最后介绍一下CoupleSpray这个社区什么是CoupleSprayCoupleSpray是CoupleNativesLiveSecOps一个下面的这样的一个一个指向它的主要的功能就是LiveSecOps Management就是做生命集群的部署还有做这样的一个data的这样的一个运萎那它的一个技术特点就是它是基于Ansible和CoupleDomin这两个主要工具来部署CoupleNatives这是它的一个最重要的一个特点其实CoupleSpray就是一系列的Ansible脚本的那样的一个集合然后它的一个功能就是说可以用来部署生产级的CoupleNatives的集群那我简单介绍一下这个SigclassLiveSecOps里面的各种各样的项目那这里面就是这个LiveSecOps下面的各种各样的项目那这里面有比如说有Couple大家耳熟能详的比较Couple的命还有像CoupleSpray还有class API还有像一些class aloneminiCouple还有像这个什么etd的命还有这个这个ImageBuild等等各种各样的项目那这里面可能有同事就有朋友可能不太理解说这里面这么多是什么样的一个关系那这里有几个层级那最基础的就是Couple的命它是所有的这样的一个集群部署工具的这样的一个基础也是逼选项然后这边三个项目我们可以理解为它有一定程度上的避孕关系CoupleSpray和class命他们都是用来部署集群的然后还有部署alone的那还有一些就是一些其他的工具包括开发环境之类的那这里面像这三个项目CoupleSpray和class API既然他们都能够部署集群那他们之间是什么样的一个关系呢就是我们可以理解这个CoupleSpray刚刚已经提到了它是一个基于Ancibal脚本的这样的一个项目所以它是非常的灵活尤其是对于运物来讲比如说在部署一个集群的时候如果遇到一些问题或者是什么一样甚至可以直接打开脚本进行编辑修改增加一些参数都是非常的方便的那Couples它是用golang去编写的它是相对来说golang会更严密一些但是它也基本上不会睡到不熟在用的时候边用边改代码的情况就会比较少它是只能通过发布来修改它的这个软件但是它的功能也更丰富它提供了这样的一个创建训议机的功能CoupleSpray也有这个功能其实class API也有只是他们的程度不同然后class API提供了一个通过CRD声明式的描述的并且是一个以致的这样的一个规范提供了一个全自动的这样的一个集群的部署那我们可以理解从自动化角度上讲这个class API是最强的如果从这个灵活性或者说更加贴近于脚本的话CoupleSpray是最强的那CoupleSpray是据于两者之间大概就是这样的一个关系那刚刚提到就是CoupleSpray是一个生命周期的管理工具那它主要有哪些功能呢一个是它可以部署这个既可以部署Cloud的环境还可以部署Bareman的环境实际上它对于Bareman比Cloud更加清合性更强一些就这样的一个部署工具刚刚提到比如class API之类的它们都是更加倾向于部署在一个Ice环境上然后同时它也是提供一个高可用生产机的另外它能够提供各种各样的组合它做个非常的丰富待会会介绍另外它可以支持各种各样的Linux的放映版同时它有一个非常强大的CI支撑那打个比方我们可以就像CourseWare就像一个Mama一样它要把就是对这个cluster它是一个无穷无尽的关怀比如说今天刷了牙没有或者说今天这个冷冷没有要不要加件衣服就是做了很多这样的一个细碎的一个工作那它都是看起来挺不极眼的但是都是为了呵护这个集群的健康然后呢刚刚提到了说CourseWare有一个非常厉害的地方就是它提供了非常丰富的组合那这里的组合有哪些呢我这里做了一个表格就是它可以支持各种各样的运缓机这里的支持运缓机不仅仅指的是说能够把这个集群部署在这些运缓机它有的还能够提供像这种类似于Transform的脚本可以创建去鸡蛋有的提供了这个比如说Ware提供了CNI的一些集成然后还像华为云的话是提供了CCI的集成它就是提供了这样的一个功能然后呢我们可以看到它是Support的各种各样的Linux版本在目前所有的同类的生命中心管理工具里面Croverspray绝对是支持Linux版本最多的一个工具了它是几乎想得到想不到的Linux都可以支持另外呢还有呢就是说它可以支持这个各种各样的CII也是非常的全从Cannander D到DockerCII-O这也比较常见的也不太常见的也都支持然后还有CNI也是一样的都支持各种各样的Callico,Cillium,Mautus,Flanor等等C3也是有很多然后同时呢它在完成这些基础的构建上呢它还可以提供一些非常常见而且使用的一些工具像Ningress,Certainmanager,Herma等等那经过了这样的一个组合它就像这个我们小时候看过一个动画片这个五个豹子组成了一个巨大的机器人样就是它是一个获得了一个变形金刚级的这样的一个强大的能力正是因为有各种各样的对于环境的超级的适配性对于这个工具的超级的这样的一个组合它这个能力就非常的强好那刚刚呢是我们对Croverspray这个软件做了一个功能性的介绍那接下来呢我来讲一下就是就是Croverspray是如何部署一个集群的就是部署一个集群分几步那分十步呃就是其实这个就比如说第一步呢是就是检查一下Ansible因为Croverspray是基于Ansible的而且和Ansible这个软件呢其实它的这个金融性并不是特别好所以它对版本的要求很高第二步是收集一下这个机器上的它是Ansible是通过SSH到各个Vinux上去看然后再这样部署这样的一个工具所以它第二步呢是收集各种各样的这个这个信息知道说部署是什么操作系统的等等等等第三步呢是做一些基础的OS的这样的一个准备工作比如PVDS啊或者之类的就是做一些非常非常基础的工作第四步呢是一个非常关键的我认为这是Croverspray这个项目的一个精华就是它做了一个一个叫Purin Start Steps就是安装前的这样的一个准备这个准备工作呢总共有207个步骤它从方方面之所以Croverspray能够部署出一个生产级的机群就是因为它做了大量的检查和准备确保说在后面的这些步骤的运行后面的这些步骤的时候呢就是我们的Croversnetics我们的这个机群呢引属于一个可以支撑健康的生产级的这样的一个状态其他比方对于与罗操作系统的一些Colonel啊或者等等的作为参数的配置啊就是在这一步做的同时如果发现了这个基础环境不行那它这一步也会爆错第五步呢就是说安装这个container engine那这里的container engine包括Docker,container lead等等它会在第五步许继型安装会在所有的阶段上都会去安装那第六步呢是去在这些机型上呢再装上这个couple light然后再做一些准备工作那基本上我们就会得到一个所有几点都会有couple light都会有Docker的或者说colonel lead这样的一个环境第七步就是把couple light拉起来第八步就是把docker再加进去然后这个时候呢基本上一个couple light is已经成形了然后到了第九步的时候呢我们再把这个network plug-inCNN 或者kaliq啊这些东西呢再装上去那到了第九步的时候呢我们已经得到了一个基本可用的一个couple light is然后最后一步再装上一些那些可有可无的或者说是一些其他的一些RGCDR这些东西就在最后一步就装上去了所以就是这样一个完整的安装一个production 机群的这样的一个过程然后呢除了安装这个我们讲left side management嘛除了安装它还做了很多其他的工作比如说升级扩展节点删除节点或者说是把这个机群卸载这些都是couple spread具备的功能那同时呢它可以还有一个非常简单的这样的一个etcd的备份的这样一个能力那就是玩这样就可以做这个机群的传生命周期的这样的一个管理了那couple light is的升级呢一直是在这个一个老大团问题尤其是在这个这个机群生命周期管理那目前来说呢couple spread呢它本身对于couple netis的版本它是有一个范围和跨度的那我这里举了一个例子就比如说一个一个版本的couple spread呢它可以支持三个版本的couple netis比如说2.23最近发布的它可以支持1.25到1.27这样的一个版本它可以支持三个版本那比如说如果我们要升级那比如说我们要从1.27升到1.28就可以去去把couple spread升级然后再它也支持1.27然后再把couple netis升到1.28然后这里面呢值得一提的那种couple spread这样的一个发布周期呢基本上也是跟couple netis去走的就是一旦couple netis发布那couple spread呢也会在下个月也会发布然后就是就是会更新一个版本然后呢因为这里我发现就是有一个非常有意思的现象就是对于一般的软件来说呢就是大家都会使用最新的一个版本或者最新的一个稳定版本但对于couple spread来说有很多用户能再使用它的master branch它直接把master branch剪下来用然后遇到问题呢再去修改然后再把它传回去我觉得这也是一个非常有意思的现象也是couple spread的这样一个灵活性的体现那刚刚提到的呢就是这个couple spread那接下来呢讲一下关于在couple netis的整个生命周期管理这个生态系统里面呢有哪些各种各样的软件那刚刚提到了couple的命是一个非常重要的然后呢还有就是couple这个sig提供了三工具然后呢同时呢这个社区呢还有像rke或者说其他的一些看源的一些软件也有同时呢每一个public的这样的一个cloud都会提供一个自己的一个continental service比如说AIR的这个IWF的这个EKS等等那主流的这个这个这个厂商都会提供那看起来好像他们也不一定是基于这个couple的命的他们都是有一个有相当程度的一些定制那还有呢就是一些developer的这样的一个一些部署集群的工具比如说像kine的这些东西那根据我个人的经验如果是做如果是在做开发过程中其实用不管是用上面的哪一个工具去拉一个集群都是非常的吃力的就是真正别的就如果只是开发对集群并不是特别的需要生产级什么什么的kine这类的工具是最好的工具对开发者来说同时呢这个行业里面也有一些commercial的商业版本那比如说open shift或者说tanzodcdoclawdce都是这样的一些商业软件提供商业化支持好那接下来呢我来分享一些关于couple service更细节的一些deep dive的一些一些一些知识那首先呢这个我们讲刚说到这couple service可以部署一个生产级的集群那一个生产级集群他他首先他是一个购可用的那那是他可以吃什么样的高可用架构呢就是故随他本身非常的灵活就是基本上这个这个couple service的典型那一些高可用的方式他都支持都可以去配然后我这里呢是一个比较常规的基于bear manual的这样的一个方式然后呢我觉得有几个关键关键点吧有一个是比如说这个这个control plan的APS server和couple light他是如何连接的那这里面呢就如果我们的couple light有三个那就必然会是需要有一个load balancer来couple light才能去访问他那如果是在一个iS比较完善的环境里面呢这个load balancer完全可以通过这个类似ELB啊或者容易去建但如果在bear manual环境里面没有没有这个条件去建ELB那这个时候呢其实比较就couple service提供了一个叫local的这样的一个load balancer的这样的一个方式可以在这个相应的couplecouple的这样的一个节点上呢去装一个nix或者hnproxy去来去来去去承担负载均衡来把这个control plan的APS server做一个负载均衡这样的话呢而且这种方式非常的通用在iS上或者在bear manual都可以走也是一个默认的方式那就可以达到了高可用那同样还有一个问题就说如果我们有这样的一个couplecouple CTR或者说是API想要去访问control plan那这里如果三个API server那我到底访问哪一个呢如果访问了其中某一个他其中当他这个节点坏掉的时候那这个AP就不可访问了那couple service就提供了一个couple vip的这样的一个方式可以通过这个通过一个vizual这样的一个ARP的这样的一个请求制造出一个vip那我们couple ccell呢就可以访问这个vip来访问可能就不然当其中任何一个节点坏掉的时候呢它会自动切到可用的节点上去那这个就是它的高可用的这样一个机制那同时呢如果我们用couple的命述部署集群的话我们经常会遇到一个证书轮廓的问题那这个couple 3也提供了一个方案可以它在control plan上安装了一个脚本可以每个月帮我们更新一下这个证书这样就不会有证书的问题了那接下来呢我来讲一下这个Aircraft这样的一个环境的一个支持就是在这个国内部署集群的话这个几乎所有的环境都是理线环境而且是相当纯的理线环境那在这样一个纯理线我看到有些这个就是网上有些教程什么就是他们可能不太理解couple 3到底是怎么去在理线化下面去做所以就还衍生出一些项目来帮助来完成这个过程那couple 3本身呢也是有非常好的理线化支持的那我来讲一下它这个大概是如何工作的这样的一个原理那首先呢我们现在一个在线的就首先还是要一台在线机器的完全理线如果呢现在有在线机器可以联络互联网的在这里面呢couple 3提供了三个脚本第一个脚本叫genoid list可以把这个理线化就是因为这个配置都配好了可以把这个理线化所需要的文件和理线化所需要的image干干净净的拉出来一个清单拉出来一个清单需要靠哪些文件清清楚楚的然后还有两个脚本呢是一个是把这个根据这个清单把文件下载下来还有一个脚本呢另外一个脚本呢根据这个清单把镜像下来下来就是最后可以把这两个东西再打成一个包大概300MB就这样就有了一个离线包了那有了这个离线包那基本上我们就可以脱离internet就可以开始搞了然后呢在这个完全理线化的环境里面呢我们可以找一台机器装上couple spread然后把这个包放进去然后利用这个包里面的这个这个离线的文件和离线的镜像的安装机群过程和在线是一模一样的我这里面有几点是需要注意的就是couple spread它有一个设计的一个一个principle就是说它是不会去去做任何操作系统包的离线化的就操作系统用用用样嘛或者用APD的这些东西它是不会做离线化的所以呢就要求我们这个这个机器呢都必须挂在上这个离线化的原那一般来讲呢我们就couple spread会避免说这个依赖太过的烦打太过的不确定基本上这个 everything的这个DVD里都会有这样的包这里还有一个这个例外的情况就是dark sea就dark sea本身它的依赖非常复杂所以呢在这种情况下dark sea还是装不了的就只有dark sea装不了其他都是可以的然后dark sea呢是需要去针对dark sea的这个原来做一些特殊处理因为它的这个依赖太复杂了所以社区呢不太愿意把这个事情就交给用户自己去做了大概就是这样然后呢刚刚提到呢就是说有很多使用couple spread的用户呢是直接从must上简直把这个代码简下来用那这样的一个方法是不是合适呢就是呃就是我这就是基本上也没有遇到什么太大问题然后呢这里我觉得主要得益于呢这个couple spread有一个非常强大的这样的一个CI系统这个CI系统确保了说这个项目的代码几乎在每一个时刻都是比较稳定的就是它的这个质量都是比较稳定的而不是说发布的时候在在做质量加固它在任何时候它的它的质量基本上是一致的所以所以基本上在随时随地都是可以去check out然后在这个里面呢有一个有一个呃非常强大的测试系统基本上tqpr要去走完全部测试需要95分钟这个时间这个应该还是比较短的时间我经常说是上午tqpr下午看看有没有测完基本上都是这样然后呃这里面包含了有40个testcast有13个操作系统有8个network parking还有30个各种各样的不同的环境去模拟同时呢这是各种各样的这样的一些刚刚说的data的运为的一些情况那那它是而因为这个测试呢过于的庞大所以还做了很多的这样的一个优化比如说fenstead把一些异鱼出错的都放到前面然后一旦爆出后面就不知情然后还有就是说呢可以对这个test做灵活的控制就是说比如说如果改一段代码呢只把那个测试拎出来直跑那个测试因为要把完整测试实在太久了然后还有像这种有更多的这样的一个完成的自动化因为这里面如果有手动的操作实在是不能忍受的那基本上是有这样一个测试同时也有一个测试的举征这又确保了刚刚提到的各种各样的组合它是真的是可以实现的另外如果我们发现如果就是有一个软件它长期的没人测试或者测试比较出问题我们也会把它从这个机械融线列板里面拿掉那这个测试是基于CoverWater来做的那原理很简单就是我们就是它就这个软件它不同于一般的这样的一个软件就是因为它生命中心管理所以它每一个测试其实都是把一个机群布出来了就是它是很重的所以基本上我绕了一个TestCast的时候就是要先启动就会用CoverWater去创建一个NamesBass然后再在里面把相应的机器创建出来然后再用CoverWater装一套机群上去装完机群上去再运行一系列的检查脚本看看这个机群是不是健康那基本上就是这就是一个测试的过程每一个PR都会创建至少50台讯息机就是在这样的一个测试的这样的一个支撑下来才确保CoverWater这项目的这样的一个稳定性所以呢如果我们使用CoverWater的某种意义上一样也是在享受这些测试带来的便利那刚刚提到的就是这两年开发的一些新功能那我这里就刚刚那个表哥做了一些高量那这里面有些新的这样的一个云的支持就像华为云或者一些其他的云黄云主要是做了一个这样的一个就是Clock Control Manager就是做这个对于loaded balancer API的支持然后同时我们会发现它这个里面这个操系统也有很多的更新待会会继续讲然后还有就是CII那CII多了一个Ukey然后还有一个就是Docker做了一个改变因为Kubernetes更改了对Docker的支持方式那现在是用一个Mountess的电片去做的CNL这边是多了一个ceiling那同时还多了一个叫customize的这样的一个方式就是说我们除了如果我用的我们用的CNL不是上面的任何一种那还有一种自定义的方式可以去集成CNL还有CSI的支持另外还多了Couple VIP RGLCD的这样的一个支持那刚刚提到了操作系统其实对操作系统的适配是Couples Rail里面一个很很重要的事情或者一个大头那在这里面主要是在最近主要是支持了这个9系列的三重S这个9系列的Red Hat这个系列的基本都支持了还有Rocket 9然后对大变做了一个更新然后Ubuntu的新版本R204同时也讨论了一些Ubuntu的旧版本FedoraFedora得不停的更新那同时因为我们还对于国产的Linux也做了支持目前应该是CNCF项目里面对国产Linux支持最多的那比如说像麒麟的Linux还有像US还有像OpenLa都是可以支持的如果要新加一个operate这个操作系统支持也是非常容易的这样的一件事情目前支持了很多接下来这样的一个操作系统这个生态可能会比较分散那对于Couples Rail这样的工具就是可以帮助解决这个问题同时对于指令级的支持也更加丰富了那除了传统的X86和ARM那还支持了PPC另外在最近这两年Couples Spread因为它是个非常老的项目那里面有之前在Multi-ArchImage这个标准还没有成立之前有各个看项目都会有自己的方式来做多价购进项比如说用后坠啊或者用什么什么Target之类的都各显身通那现在有标准了基本上统一到标准上去了所以也把所有的信像都按照标准来进行处理还有就是说目前Couples Spread可以实验性地去部署这样的一个抑购的这样的一个集群那我们就是说在同一个集群里面可以去既有X86的你有ARM这也是可以去部署的但这种方式不太推荐会对管理造成一些麻烦部署方式就是说先部署一个X86的集群然后再去通过扩展节点的方式再把ARM的集群加进来那这样就可以获得一个易购的Cluster其实Windows也可以通过类似的方法去做还有一点就是比较有意思的就是说目前来说业界对于Couple Natives的安全也越来越关注所以Couples Spread也提供了一个非常完善的一个Cluster GardeningHardening的这样的一个知识那这个是什么意思呢就是说目前这个行业里面有一个CSI的这样的一个benchmark就是Couple Bent那是提供了一个标准通过这个标准我们可以对集群做这样的一个安全的扫描看看它有哪些安全隐患那Couple Spread一方面它会尽可能解决一些不会影响生产部署的这样的一些参入都会调那同时有些不太便于去缺改默认配置的就提供了一个文档那这个文档还有一点长通过这个文档的配置就可以确保我们的集群能够通过这个CSI的benchmark达到一个安全性那如果我们是这个CSI的benchmark也有Walming Level和Error Level如果我们能够接受Walming Level的话其实也不需要做很多的配置就可以完成这个工作了接着呢我要讲一下就是在这个对于最近也是对于NTP和System CTL的这样的一个改进那在这个Bear Elemental环境里面时间同步是非常的重要的那尤其是对于像ETCD或者说Kubernetes这样的依赖于证书啊这种软件可能在营环境上遇到很大少但是在这个Bear Elemental环境里面时间同步非常非常的重要但是很多这个问题都是因为时间不同步引起的那Kubernetes就支持了一个Manage的这样的一个NTP的这样的一个功能那只要去配一下NTP等于True那再加上一些其他的配置可选的那基本上就可以把时间同步好那就可以规避这些问题这也是最近的一个新功能也是一个最佳时间然后含一点的就是关于这个操作系统内核参数那Kubernetes会去修改必要的Know的这个参数那比如说像这个IPV4 Forward这样的一些参数就是如果不把这个参数打开这个会导致Kubernetes机群出现故障的这种它会去给你默认去调的那同时对于Turning的一些参数它是不管的就是因为各个操作系统本身它的默认配置各部相同 环境要求也不同所以它就不会去管Turning这部分的东西那现在也提供了一个就是Additional CSPCT2功能去Turning我们的机群在安装的时候就可以把它Turning好那这里提供了一些典型的一些Turning的配置吧但老的高系统比如说三成为七亚或之类的它的这些助手都比较小新操作系统会提上来然后我要讲一下Public Mirror就是我发现在过去这几年就是CourseWare这个项目在国内运用的时候都遇到一些困难那困难主要都在于说它在安存博过程中会下载大量的镜像也会下载大量的文件这些文件和镜像大部分都是在Gate Hub上或者做到什么Docker Hub上那在座的都懂得就是会很强就是下载下来有可能还会断掉网络会断掉那基本上就是部署一个机群没几个小时是部署出来的而且失败率非常高那为了针对这个问题我们做了一些改进Docker Hub这样的一个加速器也做了一些调整并且和CourseWare进行集成所以现在CourseWare就支持加速就支持用镜像加速器和文件加速器我们叫加速三键客可以来加速那安装一个机群就从原来的数个小时失败率很高提升到现在基本上没有失败率并且它的时间在11分钟就能完成就变得对于中国用户更加地友好了那最后我来讲一下就是关于这个对于Gate Hub的支持就是像现在在CourseWare刚发展初期那个时候CourseWare的命还没有发布很早期的时候其实它就是个脚本部署工具那现在已经发展到Gate Hub使用CRD来部署一切了这样的一个阶段那CourseWare如何去适应呢所以我们现在就又有了一个叫CoverBean的这样的一个项目可以把CourseWareCRD通过CRD描述的方式来部署集群那在这样的一个情况下我们就能做到全部的这样的一个基础设施都可以通过AgoCD来进行Gate Hubs就这样的一个功能那最后我来讲一下这个community就目前来说CourseWare的community就是我记得之前看过一本书叫大教堂和集市我觉得有些项目叫大教堂它整个的规划得很好有KEP 有这个世界整个规划得非常好但是CourseWare这个社区真的就更像一个大集市它的人员非常多就是在有1300多个开发者参与过CourseWare的开发在一个Release版本里面就有50个以上的人来开发就是参与的人特别多而且大量的都是那种first time的committer也非常多就是非常热闹那在一个总共有了7000多个committer就像一个非常热闹的集市就是因为它的我觉得它这个项目有一个特点就是说它的大量的都是脚本我们就细称Cognitive的功能师都是YAML的功能师所以它对YAML或者说脚本非常的友好任何人都可以来提而且基本上提的也没啥问题就是有这样的一个好处所以也是它的用户即使它的使用者也是它的参与者同时它是一个在全球有一个非常广泛的这样的一个社区基础也不同于说有些开发项目可能就是说某一些大公司去立的然后去完成了它的大部分设计而这个项目它是一个全球的一些项目事实上在欧洲包括亚洲像日本等等各种各样的国家他们的使用率是非常多的包括中国就是有大量的全球的用户中小的企业包括互联公司都会去参与进来来做也分布非常广泛也是一个非常有意思的项目目前来说也得益于开发者的知识Coopersware这个项目目前在Github上有一万四千个star还是挺热门的这样的一个项目也每天都有大量的这样的一个医术我们也欢迎开发者能够一起参与到这个项目你来如果想参与到Coopersware这个项目我们可以去到Select上搜索Coopersware这个是给用户用的还有Coopersware.dev是给开发者用的可以到Select上就没有两个频道在Github下面有个叫Coopersware的项目就可以下来去用了然后这边有一个技术交流群可以扫码加群然后我等一会扫个码然后我们可以在这个群里去讨论最后我还刚刚讲了很多我还做一个简单的demo来demo一下Coopersware的这样一个使用这是看到了吗就这个就是其实Coopersware用前是也非常简单基本上是从头开始装的先GitCloneGitClone一个Coopersware把空下来Must分支因为它是一个安西伯项目里面有个Requirement TSCPIP把Python依赖装好然后它提供了一些脚本能够便捷的生成配置文件就不用去编辑了这是我的配置文件两个节点我想把它改成一个Ctrl一个Node一个两节点进行非常简单然后就开始装了然后这个是把防火墙关掉因为它不想帮你默认关防火墙是手动要关因为我们都知道不装防火墙装的时候会有问题然后就开始装了就这样就让它自动化地去运行它现在刚刚我说的那时步现在已经到了收集信息对付但是我们要把这个脚本跑完我们要等10分钟所以我就快进一下我给它快进100倍后面是100吧我给它快进100倍然后它就开始跑了装完了已经那最后装完之后呢我们可以看到它就可以Coopersware就get到Port里面就一个很基本的机型就这样装好了就是里面有CNN爱什么的就能用了然后这里面可以看到为了安装Coopersnetix它在Node的印上做了600多个工作640多个工作有166个变更其实是就真的像妈妈一样做了很多微不知的事情有的时候我们判斥期的时候觉得妈妈很烦但其实都是爱好然后这个好那谢谢大家可以到答疑的时间有什么问题就这个就是Coopersware这个效果为什么为什么有那么多的Task的原因就您刚刚提到的因为有太前几百块了各种各样的情况都有所以里面有大量的E-Files的判断代码就是在干这个对就是用户自己的知识设施按照一定的条件把机器都建好然后Coopersware会去看它是不是满足各种各样的配可能版本大有多少多少干什么可能版本小有多少多少什么比如说如果你的Cooperset是IPVS的要安装哪些mod如果你是IPTables也要安装哪些mod如果是Climb的要取代Cooperset要用安装什么什么就是它做了大量的这样的凡杂的工作对Protect是的是的如果发现冲突它会自己会退出的就是如果比如说按照配置这个情况装不上去会退出就是它是可以做平常配置升级的因为它是G-Ansible的Ansible它有一个特点就是说它可以说把配置配好之后然后帮你一直推下去推到它的最终一致的这样的一个版本所以如果是一般的配置的话你调了比如说我打比方我们对比如说比如说一些Sleep的参数或者说是一些超时参数我去调整在配置里面一调然后再推一把它就给你全更新过来了所以它是可以去自动化做这件事情的对是的是的这是提供了很强的灵活性在这里面但也因为这里面的配置量实在太多可能有成千上万个配置所以也不可能每个都测过有时候还是也要做一些演练之类的这是可以的你刚刚说那个情况是可以的就是先是二目集群建好再扩展持有的对没有是这样的它这个代码里面其实没有很显示的说一定要先干什么 后干什么就是只要就是为什么之前做了很大的一个工作量就是把所有的镜像都调整了都调整成那个调整成标准格式了就是说代码里有大量的关于X86的F124就不要了全部删掉了所以就没有刚刚说的这种其实对它来说都是对的对它来说它并不知道你装的它并不关于装的X86还是AMM它就先装了一个架构又装了一个架构对它来讲是哪个不重要顺序它就不管其实它并不是真正会管虽然我没有测过这个情况但是原理上是没问题的我觉得是这样子的就是说先把机群布出来然后遇到问题去调一调解决解决就好了其实我到现在也不是很理解一些非常奥妙的用法坦率讲也是边用边学习就是它这个就用起来之后因为它都是脚本我相信大本身并不会涉及到从零开发出一个playbook这样的情况大部分都是遇到问题调一调然后肯定也付一下一个关键字搜一搜调一调基本上就是这样先装起来然后就可以遇到问题解决解决多解决几次就9病成一了它不能管Linux操作系统的升级不管对是的就它和其他的生命之后就关起工作我觉得最大的一个差异就是它不管OS它是兼容OS其他的基本上都会带个OS所以OS里赢很多东西都配好了但是它是不会管的所以它做了大量的工作去兼容OS您刚刚说的比如说普罗米尼斯或者说这些东西就Coopersware里面也都有都是它APP那个component里面的东西我们可以自己选择是的但是在实践中其实我看很多人都在用也就是用这种方式也有很多人使用Herml来装就用那个因为只要进了Coopersware体系的东西都会被Ancibo化都会变成Ancibo的脚本或YAML之类的配置文件所以也有的人习惯用他们官方比如普罗米尼斯那个Stack官方提供的Operator这些东西来装就那个就是就是用它官方那条运为路线就是目前来说其实Coopersware的主要的还是集中在底层的这部分东西就是它的主要的就是精力都花在这里好呀那谢谢大家就是目前来说并没有去测过但是是最近没测过但是之前有人测过就是还有一个叫Larscale的这样的一个guide line就是说默认的话大概是200个纪念左右就是如果你是是默认状但如果按照那个Larscale的话可以装到上千个纪念就是有些这种推荐配置比如说ETGD要分离和Concure plan的机器分离然后再做一些参数的调整就默认参数是不会那么大的好呀那谢谢大家