您的位置:首页 > 运维架构 > Docker

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

2016-05-12 13:59 676 查看
http://8941355.blog.51cto.com/8931355/1712683

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

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通知的内容状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: