docker rancher 体验node
官方 github
https://github.com/rancher/ranchermysql
环境说明:nginx
10.6.0.140
10.6.0.187
10.6.0.188git
修改主机名:
10.6.0.140 = hostnamectl --static set-hostname reancher-manager
10.6.0.187 = hostnamectl --static set-hostname reancher-node-1
10.6.0.188 = hostnamectl --static set-hostname reancher-node-2github
[root@reancher-manager ~]#mkdir -p /opt/rencher/mysql [root@reancher-manager ~]#docker run -d --name rencher --restart=always -v /opt/rencher/mysql:/var/lib/mysql -p 8080:8080 rancher/server [root@reancher-manager ~]#docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c8209da7add0 rancher/server "/usr/bin/s6-svscan /" 12 minutes ago Up 12 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp rencher
使用本身的mysql数据库,可以使用以下参数:sql
docker run -d --restart=always -p 8080:8080 \
-e CATTLE_DB_CATTLE_MYSQL_HOST=<hostname or IP of MySQL instance> \
-e CATTLE_DB_CATTLE_MYSQL_PORT=<port> \
-e CATTLE_DB_CATTLE_MYSQL_NAME=<Name of database> \
-e CATTLE_DB_CATTLE_USERNAME=<Username> \
-e CATTLE_DB_CATTLE_PASSWORD=<Password> \
rancher/server:v1.1.3docker
浏览器访问:数据库
http://10.6.0.140:8080浏览器
显示以下:网络
1.
2. 填写访问地址,若是为私网IP ,会提示。
3. node 节点 复制: docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.0.2 http://10.6.0.140:8080/v1/scripts/8944D0EC8BCFEB4F127C:1472544000000:BIX8IC8bWsRbx60NMhka4AmxmpQ
进行安装rancher-agent
[root@reancher-node-1 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c7f533527ec rancher/agent:v1.0.2 "/run.sh run" 4 minutes ago Up 4 minutes rancher-agent 7566aa61cdbe rancher/agent:v1.0.2 "/run.sh state" 4 minutes ago Exited (0) 4 minutes ago rancher-agent-state 032d85c88779 rancher/agent:v1.0.2 "/run.sh http://10.6." 5 minutes ago Exited (0) 4 minutes ago fervent_morse
4. 安装完毕,等待5分钟左右,在 WEB UI 界面,能够看到以下:
5. 点击以下: 添加 容器
6. 部署 stack 与 service
Add stack
7 启动 service
显示 Active 既可
轻松生成 10 个 Containers
8 点击 Load Balance 生成一个 负载均衡器
点击完成,选择 Link 可查看关系图
生成 2个 Load Balance , 2个 node 节点都映射80端口
2个 LB 10个 nginx 容器
访问 http://10.6.0.187 与 http://10.6.0.188 :
Rancher 中 网络+负载均衡 实现 与 说明
依赖镜像:rancher/agent-instance:v0.8.3
Rancher 网络是 采用SDN技术所建容器为虚拟ip地址,各host之间容器采用ipsec隧道实现跨主机通讯,使用的是udp的500和4500端口。
启动任务时,在各个host部署容器以前会起一个Network Agent容器,负责组建网络环境。
10. 破坏性测试 (如下为别人测试)
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上的容器变化,没有新启动任何容器。