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

http://8941355.blog.51cto.com/8931355/1712683

rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简单方便。并且功能丰富。如下为本人绘制的逻辑架构图。

wKiom1ZF--_yvZoQAAKomeiG4e0421.png

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.png

添加两个host之后

wKioL1ZGBBbz3cZXAACpKvrpWic837.png


2:部署stack和service

rancher管理容器是以stack为一个任务组,在stack下可以有多个service共同提供业务,而每个service可以包含多个容器。

下面来创建一个web集群,来提供网站服务

1:创建一个Stack,命名为WEB-Server

wKioL1ZGCBuj62eHAABSpKM3lhc799.png


2:创建一个Service,命名为Nginx-cluster,运行十个nginx容器。

wKioL1ZGB7TTAj2iAABXGluFhBU686.png

3:点击start启动service,开始部署container。

wKioL1ZGB7XyvE5MAAB-pwUx8dU678.png

4:创建一个Load Balance负载均衡器

wKioL1ZGB7aicku_AADQWd-jtZA536.png

5:创建一个Load Balance负载均衡器,设置端口映射,选择负载均衡的服务。

wKioL1ZGB7eyllKdAACl-OPuFCE834.png

6:WEB-server的服务创建成功。一个stack包含了两个service。wKiom1ZGB2zzndB7AAElppQy7ZA495.png

7:点击显示架构图,可清楚看到逻辑关系.

wKioL1ZGCjuxoZgCAAFQeP50V00072.png

8:同理创建一个WordPress服务,如下。

wKiom1ZGCk_RcSSlAADAfsbWnmg937.png

wKioL1ZGCpzBdnUjAADd2NbB5No097.png


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.png




  • 用户管理和访问控制

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

wKiom1ZGDSOTM2aGAADBsnQkSAc508.png


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

wKiom1ZGDSTTi42OAAB376K8th0584.png




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

wKiom1ZGDeHBbLRxAAGUM2RLpaQ961.png





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通知的内容状态。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
部署一个Docker管理平台,你可以按照以下步骤进行操作: 1. 选择一个适合的Docker管理平台:有很多Docker管理平台可供选择,例如Portainer、Rancher、Kubernetes等。你可以根据你的需求和技术栈选择一个适合的平台。 2. 准备服务器环境:你需要准备一台或多台服务器来托管Docker管理平台。确保服务器满足所选平台的硬件和软件要求,例如操作系统版本、内存和处理器等。 3. 安装Docker:在服务器上安装Docker运行时。根据操作系统的不同,可以使用适当的包管理器或脚本来安装Docker。 4. 配置网络和防火墙:确保服务器上的网络和防火墙设置允许与Docker管理平台的通信。根据所选平台和网络环境,可能需要打开特定的端口或配置其他网络设置。 5. 下载和部署Docker管理平台:根据所选平台的文档,下载并部署相应的Docker镜像或二进制文件。这通常涉及使用Docker命令来拉取和运行容器。 6. 配置和管理平台:根据所选平台的文档,进行必要的配置和管理操作。这可能包括设置管理员账户、配置用户权限、连接到Docker主机等。 7. 可选:配置高可用性和扩展性:如果需要高可用性和扩展性,可以根据所选平台的文档,配置集群环境和负载均衡器。 请注意,这只是一个基本的概述,具体的步骤和操作可能因所选平台和环境而有所不同。建议在部署过程中参考所选平台的官方文档和指南,以确保正确和顺利地完成部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值