A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Docker的部署比较麻烦的地方就是网络, 容器虽然极大的节约了资源,提高了安全性,但是由于每一个容器都是一个独立的环境,其网络也是独立的网络,和其他容器进行通信成了一个难题.
还好针对这个问题,各个公司提出的解决方案也比较多, 比如Pipework、Flannel、Weave、Open vSwitch 都是Docker的网络解决方案.
下面我们学习一下weave 的使用方法, 然后下一篇文章使用weave做一个简单的部署
weave项目地址: https://github.com/weaveworks/weave
weave原理:

Weave通过创建虚拟网络使Docker容器能够跨主机通信并能够自动相互发现。
通过weave网络,由多个容器构成的基于微服务架构的应用可以运行在任何地方:主机,多主机,云上或者数据中心。
应用程序使用网络就好像容器是插在同一个网络交换机上一样,不需要配置端口映射,连接等。
在weave网络中,使用应用容器提供的服务可以暴露给外部,而不用管它们运行在何处。类似地,现存的内部系统也可以接受来自于应用容器的请求,而不管容器运行于何处。
简单地说,就是weave创建了一个虚拟网络, 我们只需要把所有的Docer容器加入到该虚拟网络中,各个容器就处于相同的网段, 容器之间就可以自由的相互通信了, 即使真实的容器处于不同的主机或网络.


下面我们就来自己实现一下整个部署过程:

1.安装:


  •   curl -L git.io/weave -o /usr/local/bin/weave  #下载



  •   chmod a+x /usr/local/bin/weave  #赋予执行权限


2.检查:


  •    weave version   #查看weave版本



  •    weave status     #查看weave状态




weave 网络默认为10.32.0网段
每个地址由4*8=32个比特构成 , /12表示 子网掩码位是12个bit 也就是子网可以有 2的(32-12)次方个ip

3.启动


  •   weave launch   #启动weave



  •   weave launch  ip | hostName #节点启动的时候连接到master (创建weave网络的主机叫master)


4.检查是否启动成功


  •   docker ps  # 如果有一个weaveworks/weave容器在运行就表示启动成功,后边两个检查并非必须!



  •   brctl show #检查网桥, weave启动还会生成一个名叫weave的网桥, (docker0网桥是docker默认生成的)



  •   docker network ls  #检查docker中的网络配置, 发现其中也生成了一个Name为weave的网络


5.启动容器

1.weave run 镜像ID(此方式2.0版本以后已经废除)
2.eval $(weave env) 将docker命令代理给weave 执行,(如果先执行这个, docker命令启动的容器就会被自动加入weave网络,并自动分配IP)
3.docker run xxx (正常启动容器) —>
然后执行

  • weave attach ContainerId IP #将容器加入到weave网络并分配指定IP
  • weave attach ContainerId #将容器加入到weave网络并自动分配IP
6.测试


  •     docker exec  -it  ContainerId /bin/bash 进入某一容器



  •     ping  xxx  #ping 另一个weave网络内的容器ip, 如果能够ping 通说明网络已经连接OK


weave 的使用还是比较简单的,下一篇文章我们
下面总结一下常用的命令



  • 物理机之间容器互通:weave connect $OTHER_HOST  #可以把一台主机连接到weave网络



  • 动态添加网络:对于不是通过weave启动的容器,可以通过weave attach 10.0.1.1/24 $id来添加网络(weave  detach删除网络)







  • 与宿主机网络通信:weave expose ip/24 或者weave expose,这个命令会把宿主机加入到weave 网络中, 宿主机就可以和容器之间自由通信了







  • 安全性:可以通过weave launch -password wEaVe设置一个密码用于weave peers之间加密通信



  • 查看weave路由状态:weave ps



2 个回复

倒序浏览
奈斯,优秀
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马