Rancher集群化docker管理平台部署、特性及破坏性测试。

发布日期:2018-11-21 浏览次数: 7534 次
  rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简单方便。并且功能丰富。如下为本人绘制的逻辑架构图。
  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 # 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端管理。
  添加两个host之后
  2:部署stack和service
  rancher管理容器是以stack为一个任务组,在stack下可以有多个service共同提供业务,而每个service可以包含多个容器。
  下面来创建一个web集群,来提供网站服务
  1:创建一个Stack,命名为WEB-Server
  2:创建一个Service,命名为Nginx-cluster,运行十个nginx容器。
  3:点击start启动service,开始部署container。
  4:创建一个Load Balance负载均衡器
  5:创建一个Load Balance负载均衡器,设置端口映射,选择负载均衡的服务。
  6:WEB-server的服务创建成功。一个stack包含了两个service。
  7:点击显示架构图,可清楚看到逻辑关系.
  8:同理创建一个WordPress服务,如下。


  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
  用户管理和访问控制
  支持多种访问控制权限管理。保证平台安全。
  支持用户组及权限设置(如下图设置了运维OPS环境和开发DEV环境,实现管理隔离)。
  集成第三方软件镜像(官方会持续更新)
  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通知的内容状态。
  本文出自 “8931355” 博客,请务必保留此出处http://8941355.blog.51cto.com/8931355/1712683
  转自:码迷
分享到:
×

微信扫一扫分享

XML 地图 | Sitemap 地图