设为首页 收藏本站
查看: 6082|回复: 0

[经验分享] Rancher集群化docker管理平台部署、特性及破坏性测试。

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-16 09:55:36 | 显示全部楼层 |阅读模式
rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简单方便。并且功能丰富。如下为本人绘制的逻辑架构图。
wKiom1ZF--_yvZoQAAKomeiG4e0421.jpg
1:部署Rancher管理平台

规划:
server:10.64.5.184

agent1:10.64.5.185
agent2:10.64.5.186
agent3:10.64.5.187
agent4:10.64.5.188

部署方式:

docker容器启动

server端部署  
依赖镜像:rancher/server:latest   
1
# docker run -d --restart=always -v /home/heqinqin/data:/var/lib/mysql -p 8080:8080 rancher/server




agent部署
依赖镜像:rancher/agent:v0.8.2  
浏览器访问server_ip:8080,点击Add host.执行下图中sever管理端生成的Add host命令,即可将host添加到server端管理。

wKioL1ZGAX-QMz1tAAEObmjsGbg257.jpg
添加两个host之后
wKioL1ZGBBbz3cZXAACpKvrpWic837.jpg

2:部署stack和service
rancher管理容器是以stack为一个任务组,在stack下可以有多个service共同提供业务,而每个service可以包含多个容器。
下面来创建一个web集群,来提供网站服务
1:创建一个Stack,命名为WEB-Server

wKioL1ZGCBuj62eHAABSpKM3lhc799.jpg

2:创建一个Service,命名为Nginx-cluster,运行十个nginx容器。
wKioL1ZGB7TTAj2iAABXGluFhBU686.jpg
3:点击start启动service,开始部署container。
wKioL1ZGB7XyvE5MAAB-pwUx8dU678.jpg
4:创建一个Load Balance负载均衡器
wKioL1ZGB7aicku_AADQWd-jtZA536.jpg
5:创建一个Load Balance负载均衡器,设置端口映射,选择负载均衡的服务。
wKioL1ZGB7eyllKdAACl-OPuFCE834.jpg
6:WEB-server的服务创建成功。一个stack包含了两个service。 wKiom1ZGB2zzndB7AAElppQy7ZA495.jpg
7:点击显示架构图,可清楚看到逻辑关系.
wKioL1ZGCjuxoZgCAAFQeP50V00072.jpg
8:同理创建一个WordPress服务,如下。

wKiom1ZGCk_RcSSlAADAfsbWnmg937.jpg
wKioL1ZGCpzBdnUjAADd2NbB5No097.jpg

3:Rancher的相关特性,功能
  • 网络+负载均衡

依赖镜像:rancher/agent-instance:v0.5.0
采用SDN技术所建容器为虚拟ip地址10段(常规为docker内部地址172段),各host之间容器采用ipsec隧道实现跨主机通信,使用的是udp的500和4500端口。
启动任务时,在各个host部署容器之前会起一个Network  Agent容器,负责组建网络环境。   


  • 监控管理

包括:主机监控+和容器监控
监控内容:CPU+Memory+Network+storge
wKiom1ZGDOzTyjmCAAFk6YpsqZs066.jpg



  • 用户管理和访问控制

支持多种访问控制权限管理。保证平台安全。
wKiom1ZGDSOTM2aGAADBsnQkSAc508.jpg

支持用户组及权限设置(如下图设置了运维OPS环境和开发DEV环境,实现管理隔离)。
wKiom1ZGDSTTi42OAAB376K8th0584.jpg



  • 集成第三方软件镜像(官方会持续更新)

wKiom1ZGDeHBbLRxAAGUM2RLpaQ961.jpg



4:破坏性测试
server是以胖容器方式运行,其中包含了mysql数据库,经测试,数据库保存了任务数据以及任务逻辑关系。
破坏server端
1.
操作:在server端和agent端正常运行状态下,stop掉server容器,
结果:业务不受影响。start重启容器后恢复管理功能。
2.
操作:将server端容器rm删除掉(未将mysql数据映射至宿主机),重新再起一个server容器。
结果:1.当前业务不受影响
     2.新server仍然能够识别和管理各个agent,因为agent端是连server的ip端口,ip不变就能连上
      3.agent端原有的任务容器的命名和逻辑关系没有了。
3.
操作:将server端容器rm删除掉(将mysql数据/var/lib/mysql 映射至宿主机),重新再起一个server容器。
结果:新起的容器能够识别任务状态,命名,逻辑关系。恢复到之前的状态。

破坏agent端
4.
操作:host命令行下删除掉agent容器
结果:不影响当前业务状态,server端显示host失联,无法对该agent下发任务进行扩容和缩容。
重新启动agent后恢复正常。
5.
操作:server控制端删除agent端的业务容器(例如删除nginx容器)
结果:删除后数秒内,在另一个host上重新启动一个新的业务容器。
6.
操作:host命令行下删除agent端的业务容器(例如删除nginx容器)
结果:删除后数秒内,在当前host上重新启动一个新的业务容器。
7.
操作:host命令行下删除掉agent容器后,再删除一个业务容器
结果:server端因为与agent失联,导致无法更新该host上的容器变化,没有新启动任何容器。

测试未完。。。





---当前结论  
1:server节点需要单独部署,并相对给予较高性能。
2:server节点宕机不会对现有业务造成影响,但是可能会对后期管理造成影响。
3:需要将server端数据保存至宿主机,并定期备份数据库数据。
4:server端对host的管理完全是依赖agent容器,当无法联系agent容器时,无法得知当前host上容器的变化,在终端显示的是最后一次agent通知的内容状态。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139766-1-1.html 上篇帖子: docker管理工具 shipyard 及 dockerUI 下篇帖子: mesos+mrathon+zookeeper的docker管理集群亲手搭建实例(详细)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表