资讯专栏INFORMATION COLUMN

Rancher v1.2:Swarmkit的实现

loonggg / 1610人阅读

摘要:引擎非常轻量级,由于其内置早中,所以部署起来会非常方便。这样单个出问题,新的会很快选举出来,保证集群的稳定性。后续对版本的支持也在持续迭代中。

引言

Rancher v1.2更新了之前对Swarm的支持,与Docker一样抛弃了就有的Swarm,选择支持Swarmkit。Swarmkit引擎非常轻量级,由于其内置早Docker Engine中,所以部署起来会非常方便。虽然目前Swarmkit引擎还在不断发展,而且bug也很多,但是它也有其擅长的使用场景,比如简单的CI/CD场景,它会非常灵活简洁。本文将带大家体验一下,Rancher v1.2对Swarmkit的支持。

部署与使用

部署方面秉承Rancher一贯的原则,非常简单,只需要在创建Env时选择Sawrm即可。

Env创建完毕后,会看到多个Infra Service需要创建,这时候和其他引擎一样,我们需要向Env中添加Host。我们知道Swarm的node有两种:Manager和Worker。Rancher创建的Swarm集群默认是3个Manager,多个Manager内有一个是Leader,另外两个备用。这样单个Host出问题,新的Leader会很快选举出来,保证集群的稳定性。比如我添加了两个Host,默认是先添加Manager角色,所以2个Host都会以Manager方式添加,如下图所示:

进入其中一台Host内,查看swarm集群状态,可以看到一个是Leader,另外一个Reachable做备用。

尝试创建一个简单的程序,查看与UI上的联动效果,如图所示:

如果使用Swarmkit的自定义网络方式,情况如何?虽然在UI上显示无IP,但是进入容器内部可以看到overlay对应的网卡,如图所示:

实现原理

那么Rancher是如何来完成Swarmkit的部署和联动呢?Rancher中Swarmkit也是基于Cattle来部署的,根据之前的文章分析,我们可以知道Rancher的基础设施编排的定义都是通过catalog中的infra-templates实现的,Swarmkit比较特殊它是在community-catalog中定义的,如果一直在rancher-catalog中寻找肯定找不到。compose文件中定义了一个service swarmkit-mon,如图所示:

如果探究原理,我们就需要知道swarmkit-mon对应的镜像是如何定义的。rancher/swarmkit这个dockerfile并没有在https://github.com/rancher下面的项目中,这个需要顺藤摸瓜,找到该Dockerfile的维护者(其实也是Rancher的一名员工),最终地址是https://github.com/LLParse/sw...。如图所示:

swarmkit-mon中内置了docker,并映射了Host上的docker.sock,这样可以在swarmkit-mon容器中控制docker创建swarmkit集群。swarmkit-mon的实现比较简单,主要包括两个shell脚本:run.sh负责swarmkit集群的管理和Rancher的联动,agent节点信息需要通过rancher-metadata读取,设置Host Label则直接调用Rancher API;health.sh负责监控swarmkit节点的状态(通过与docker.sock通信读取Swarm.LocalNodeState的状态),并与giddyup协作暴露健康检查端口,这样可以利用Rancher Cattle的healthcheck来保证swarmkit-mon服务的高可用性,每个Host的swarmkit-mon出问题时可以进行自动重建恢复。原理如图:

总结

目前来看,由于Kubernetes的发展的确迅猛,所以Rancher的更多精力都放在K8s上。针对Swarmkit的支持显得略显单薄,但是Swarmkit本身的问题也很多,目前也难以应对复杂场景,所以目前的支持力度应该是足够了。后续对docker1.13版本的Swarmkit支持也在持续迭代中。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27981.html

相关文章

  • Rancher v1.2:Swarmkit实现

    摘要:引擎非常轻量级,由于其内置早中,所以部署起来会非常方便。这样单个出问题,新的会很快选举出来,保证集群的稳定性。后续对版本的支持也在持续迭代中。 引言 Rancher v1.2更新了之前对Swarm的支持,与Docker一样抛弃了就有的Swarm,选择支持Swarmkit。Swarmkit引擎非常轻量级,由于其内置早Docker Engine中,所以部署起来会非常方便。虽然目前Swarm...

    WilsonLiu95 评论0 收藏0
  • Rancher2016答卷

    摘要:降低对外包服务团队的依赖,提高业务的敏捷性研发部门实现测试环境自动创建配置和邮件通知,满足持续集成和持续交付的要求,可自动并快速获得基础架构应用配置和代码等各个关键环节的反馈。 2016年对Rancher Labs而言是太重要也太精彩的一年 Rancher 1.0,Rancher 1.1,Rancher 1.2三次重大的版本发布与更新Rancher的累积下载量已达1600万 在中国海航...

    iKcamp 评论0 收藏0
  • Rancher v1.2:网络架构解读

    摘要:在之前的版本上,用户时常抱怨的网络只有,没有其他选择。而容器社区的发展是十分迅猛的,各种容器网络插件风起云涌,欲在江湖中一争高下。同样是基于,使用提供的,网络配置信息以方式注入。 在之前的Rancher版本上,用户时常抱怨Rancher的网络只有IPsec,没有其他选择。而容器社区的发展是十分迅猛的,各种容器网络插件风起云涌,欲在江湖中一争高下。Rancher v1.2版本中与时俱进,...

    0x584a 评论0 收藏0
  • Rancher v1.2:网络架构解读

    摘要:在之前的版本上,用户时常抱怨的网络只有,没有其他选择。而容器社区的发展是十分迅猛的,各种容器网络插件风起云涌,欲在江湖中一争高下。同样是基于,使用提供的,网络配置信息以方式注入。 在之前的Rancher版本上,用户时常抱怨Rancher的网络只有IPsec,没有其他选择。而容器社区的发展是十分迅猛的,各种容器网络插件风起云涌,欲在江湖中一争高下。Rancher v1.2版本中与时俱进,...

    tinysun1234 评论0 收藏0
  • Rancher v1.2基础设施引擎整体架构分析

    摘要:官方于月日发布了其容器部署与管理平台的最新版本,。架构总览在版本的整体架构图如下图所示上,引擎向下深入演化成了基础设施引擎,这一点上在时代也早有体现。基础设施引擎初次安装版本,会发现多了如下图所示的明显标识,默认的引擎需要安装等服务。 Rancher Labs官方于12月1日发布了其容器部署与管理平台Rancher的最新版本,Rancher v1.2。Rancher v1.2可以说是一...

    Sike 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<