wlyyb521 发表于 2018-5-30 10:50:42

Centos7 + docker + shipyard 场景测试

Docker + shipyard 测试
1      测试拓扑:
  
2      测试目的:

[*]  在两台Centos7服务器上安装docker程序,测试镜像封装
[*]  从镜像运行两个apache应用,测试服务访问
[*]  安装shipyard容器管理程序,测试管理两台主机及container
3      测试过程
3.1      Linux桥接
  若已启用docker,先停止docker服务和移除docker0网桥:
  # Stopping Docker and removing docker0
  $ sudo service docker stop
  $ sudo ip link set dev docker0 down
  $ sudo brctl delbr docker0
  创建需要的网桥:
  $ sudo brctl addbr docker0
  $ sudo ip addr add 10.0.1.197/24 devbridge0
  $ sudo ip link set dev docker0 up
  $ ip addr show docker0
  修改eth网卡使桥接生效:
  修改需要通信的eth网卡,模式改为BRIDGE=bridge,并重启网络;ifconfig观察桥接是否生效并启用。
  
  以上操作在两台host都需要执行,可实现bridge与需要通信的网卡桥接,然后通过管理端访问控制container;container会获取到和docker0同一个网段地址,方便完成测试。
3.2      第一部分
  对服务器做初始化,使正常访问互联网。安装运行docker:
  # sudo yum install docker
  # sudo service docker start
  # sudo chkconfig docker on
  创建非root用户mds,运行docker:
  # sudo usermod -a -G docker mds
  拉取centos的docker镜像:
  # docker pull centos
  查看拉取的docker镜像:
  # docker images
  运行一个centos6docker镜像:

  安装并运行apache服务:
  bash-4.1# yum -y install httpd
  bash-4.1# service httpd start
  bash-4.1# chkconfig httpd on
  退出当前容器:
  bash-4.1# exit
  重新封装该容器,创建镜像:
  # Docker commitb1bd49907d55httpd
  生成新镜像:

3.3      第二部分
  从镜像部署两个apache应用:
  # dockerrun –i–t55a05053732c /bin/bash
  bash-4.1#ifconfig eth0               查看IP地址:10.0.1.3
  bash-4.1#service httpd start
  bash-4.1#                  切出当前容器
  # dockerrun –i–t55a05053732c /bin/bash
  bash-4.1#ifconfig eth0               查看IP地址:10.0.1.4
  bash-4.1#service httpd start
  bash-4.1#
  操作步骤一样,但是新的容器会生成不同的containerID,查看已创建的容器:

  分别在操作端使用IE浏览器访问两个容器服务地址:
  http://10.0.1.3/

  http://10.0.1.4/

3.4      第三部分
  拉取并运行shipyard镜像(shipyard用于集中管理docker主机和container):
  # docker pull shipyard/shipyard
  # docker images   查看images id
  # docker run –i –t 30e0b59613ff /bin/bash
  运行shipyard服务
  root@029b8401c5a0:/app# ifconfig   查看IP地址10.0.1.2
  root@029b8401c5a0:/app# sudo pythonmanage.py runserver 0.0.0.0:8000
  root@029b8401c5a0:/app# netstat -ant| grep 8000 查看服务状态
  tcp       0      0 0.0.0.0:8000          0.0.0.0:*               LISTEN
  在两台host下载shipyard/agent,向shipyard注册host:
  # wget https://github.com/shipyard/shipyard-agent/releases/download/v0.3.2/shipyard-agent
  # ./shipyard-agent -url http://10.0.1.2:8000 –register
  # ./shipyard-agent -url http://10.0.1.2:8000 –key 1234567890qwertyuiop
  登录shipyard管理端:
  Username: admin
  Password: shipyard

  在shipyard的UI管理界面,验证通过host加入的请求:

  通过web UI管理container:


  管理镜像:

  用户权限管理:

  单个container无法查看和管理的解决办法:
  分别查看4500、4243端口是否被监控
  关闭host防火墙,关闭docker服务,并执行以下命令;
  /usr/bin/docker -d -H tcp://0.0.0.0:4243 -Hunix:///var/run/docker.sock
  之后重新启用docker,重复上述部署操作。
4      参考资料
  Docker学习笔记
  http://blog.tankywoo.com/docker/2014/05/08/docker-1-start.html
  Docker Advanced networking
  https://docs.docker.com/articles/networking/
  Shipyard QuickStart
  https://github.com/shipyard/shipyard/wiki/QuickStart
  Docker 的一个 Web 管理界面 Shipyard
  http://www.vpsee.com/2013/11/shipyard-a-docker-web-ui/
  docker shipyard multihost
  http://serverascode.com/2014/05/25/docker-shipyard-multihost.html
  centos6.5下安装docker0.11
  http://wenxuezhai.net/?p=1028
  说明:该测试只是针对一个特定场景测试,中间坑比较多很多问题未解决,只是为了达到测试目的,观察测试结果的一个简单验证。
页: [1]
查看完整版本: Centos7 + docker + shipyard 场景测试