2019独角兽企业重金招聘Python工程师标准>>>

Weave Net( https://www.weave.works )是Docker上的虚拟网络,可以将分布式的Docker服务链接为一个虚拟的服务网络,就像在一个局域网中运行一样,而且可以穿透防火墙(需要开放相应端口),从而可以构建出基于Mesh架构的对等服务网络(https://github.com/weaveworks/mesh )。目前Weave版本是独立发展的,尚未纳入Docker官方体系。

  • 关于容器SDN(软件定义网络)概念参考:容器SDN技术与微服务架构实践
  • 关于容器上网络技术发展,参考:Docker网络管理的未来

1、项目源码

项目源码托管在:https://github.com/weaveworks/weave

2、快速安装

sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weave
weave setup
weave version
weave status
  • 启动一个节点:
weave launch
weave env
  • 停止当前节点:
weave stop

详细说明在: https://www.weave.works/docs/net/latest/installing-weave/

  • 指定密码:
weave launch --password xxxx

3、运行Weave,建立虚拟网络

在多个节点上安装docker和weave软件。

  • 在主节点(假定IP:192.168.1.8)上运行:
weave launch --ipalloc-range 12.32.0.0/12

注意,在阿里云的虚拟服务器,必须使用--ipalloc-range 12.32.0.0/12等来指定要分配的IP段,默认的已被占用,不能使用。

  • 在其他节点上运行:
weave launch --ipalloc-range 12.32.0.0/12  192.168.1.8

其中,192.168.1.8为刚才建立的第一个节点(需要其他节点都能访问到)。这样,一个新的节点就加入进去了。现在,运行weave status就可以看到有两个节点已经形成一个虚拟网络。

运行Docker容器:

  • 在第一个节点运行:
eval $(weave env)
weave run --name amaster -it weaveworks/ubuntu
  • 在第二个节点运行:
eval $(weave env)
weave run --name aworker -it weaveworks/ubuntu

然后在控制台运行ping amaster,应该可以看到响应信息。此时,amaster和aworker已经在同一个虚拟网中,所分配的IP地址在上面所指定的12.32.0.0/12范围内,该地址在外面是不能访问的。

  • 注意,如果容器实例停止后重启,仍然使用weave start aworker ,如果使用docker start将导致虚拟网地址无效。Docker的其它操作类似。

4、WeaveScope网络监控

WeaveScope可以对Docker运行网络进行监控,安装方法如下。

sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch

然后,浏览器访问:http://localhost:4040(按上面的scope启动后提示信息)。

对于每一个参与scope监视的节点也需要安装scope软件,把下面内容保存到docker-compose.yml,然后运行docker-compose up -d即可。

version: '2'
services:probe:container_name: weavescopeimage: weaveworks/scopenetwork_mode: "host"restart: "always"pid: "host"privileged: truelabels:- "works.weave.role=system"volumes:- "/var/run/docker.sock:/var/run/docker.sock:rw"command:- "--probe.docker"- "true"

如果对Docker基础资源(镜像、容器等)进行管理,建议安装Rancher。

5、ARM支持

在RapspberryPi(树莓派)上,使用下面方法安装weave支持软件。

  • 安装Weave

Docker和Weave都可以支持ARM了【点击查看最新的ARM版源码】。

如下,可以在树莓派下的Raspi系统运行Weave:

sudo wget https://raw.githubusercontent.com/dilgerma/weave/rpi-latest-release/weave -O /usr/local/bin/weave
#或:sudo wget git.io/rpi_weave -O /usr/local/bin/weavesudo chmod +x /usr/local/bin/weave
sudo weave setupsudo weave launch
#...其它操作与上面的X86一样。

其它的板子和操作系统,可能需要进一步测试和移植。

  • 安装Scope主控服务
sudo wget https://raw.githubusercontent.com/dilgerma/scope/master/scope -O /usr/local/bin/scope
#或:sudo wget https://git.io/scope -O /usr/local/bin/scopechmod +x /usr/local/bin/scope
scope launch

上面的只能运行在PC上,树莓派运行报错,发现用的是X86版本的Docker镜像。 或者:#docker pull dilgerm/rpi-scope,我没试过。

然后,浏览器访问:http://localhost:4040(按上面的scope启动后提示信息)。

  • 安装Scope节点

对于每一个参与scope监视的节点也需要安装scope软件,把下面内容保存到docker-compose.yml,然后运行docker-compose up -d即可。 因为树莓派目前的Docker-Compose版本比较老,只支持docker-compose.yml的1.0格式。

probe:container_name: weavescopeimage: dilgerm/rpi-scopenet: "host"pid: "host"restart: "always"labels:- "works.weave.role=system"volumes:- "/var/run/docker.sock:/var/run/docker.sock:rw"command:- "--probe.docker"

如果使用docker-compose.yml的2.0版本,可以到:https://github.com/docker/compose/releases/ 下载最新的docker-compose版本,然后安装。

wget https://github.com/docker/compose/archive/1.9.0.zip -O docker-compose.zip
unzip docker-compose.zip
cd docker-compose
sudo pip3 install docker-py -y
sudo python3 setup.py install

使用下面的文件内容保存为docker-compose.yml:

version: '2'
services:probe:container_name: weavescopeimage: dilgerm/rpi-scopenetwork_mode: "host"pid: "host"restart: "always"privileged: truelabels:- "works.weave.role=system"volumes:- "/var/run/docker.sock:/var/run/docker.sock:rw"command:- "--probe.docker"- "true"

6、weave命令参数

weave启动后,接管Docker的相关操作,从而建立一个新的虚拟网络。

weave的命令行参数如下:

weave --help | help setup version

weave launch <same arguments as 'weave launch-router'> launch-router [--password <pass>] [--trusted-subnets <cidr>,...] [--host <ip_address>] [--name <mac>] [--nickname <nickname>] [--no-restart] [--resume] [--no-discovery] [--no-dns] [--ipalloc-init <mode>] [--ipalloc-range <cidr> [--ipalloc-default-subnet <cidr>]] [--log-level=debug|info|warning|error] <peer> ... launch-proxy [-H <endpoint>] [--without-dns] [--no-multicast-route] [--no-rewrite-hosts] [--no-default-ipalloc] [--no-restart] [--hostname-from-label <labelkey>] [--hostname-match <regexp>] [--hostname-replacement <replacement>] [--rewrite-inspect] [--log-level=debug|info|warning|error] launch-plugin [--no-restart] [--no-multicast-route] [--log-level=debug|info|warning|error]

weave prime

weave env [--restore] config dns-args

weave connect [--replace] [<peer> ...] forget <peer> ...

weave run [--without-dns] [--no-rewrite-hosts] [--no-multicast-route] [<addr> ...] <docker run args> ... start [<addr> ...] <container_id> attach [<addr> ...] <container_id> detach [<addr> ...] <container_id> restart <container_id>

weave expose [<addr> ...] [-h <fqdn>] hide [<addr> ...]

weave dns-add [<ip_address> ...] <container_id> [-h <fqdn>] | <ip_address> ... -h <fqdn> dns-remove [<ip_address> ...] <container_id> [-h <fqdn>] | <ip_address> ... -h <fqdn> dns-lookup <unqualified_name>

weave status [targets | connections | peers | dns | ipam] report [-f <format>] ps [<container_id> ...]

weave stop stop-router stop-proxy stop-plugin

weave reset [--force] rmpeer <peer_id> ...

where <peer> = <ip_address_or_fqdn>[:<port>] <cidr> = <ip_address>/<routing_prefix_length> <addr> = [ip:]<cidr> | net:<cidr> | net:default <endpoint> = [tcp://][<ip_address>]:<port> | [unix://]/path/to/socket <peer_id> = <nickname> | <weave internal peer ID> <mode> = consensus[=<count>] | seed=<mac>,... | observer

转载于:https://my.oschina.net/u/2306127/blog/780040

Docker上的虚拟网络-Weave Net相关推荐

  1. docker(7、容器网络6) weave 网络 Weave 跨主机的连通和隔离特性

    weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...

  2. 节点服务器虚拟网络,虚拟网络功能节点放置研究

    摘要: 在互联网时代虚拟网络研究成为拓展延伸计算机网络的主要技术,主要应用于网络技术和构架,既能够突破网络交换问题,又能够灵活性的利用网络技术实现网络共享.虚拟网络功能节点的有效放置可以有效突破物理底 ...

  3. Azure Virtual Network, 虚拟网络

    云上的虚拟网络把不同用户完全的隔离开来.同时可以自己对虚拟网络进行定制,设置各种安全访问策略,配置load balancer等等. 在新的基于Azure Resource Manager (ARM)的 ...

  4. VMware-重要设置-虚拟网络编辑器

    一.概述 虚拟网络编辑器是VMWare中一个比较容易被忽视的强大功能组件. 您可以使用虚拟网络编辑器执行以下操作:查看和更改关键网络连接设置,添加和移除虚拟网络以及创建自定义虚拟网络连接配置.在虚拟网 ...

  5. Hyper-V三种虚拟网络类型的理解

    Windows 10除家庭版之外都内置了Hyper-V,但是Win10系统上Hyper-V虚拟网络的设置方法却与之前版本的Hyper-V有些不同,最近在折腾了无数遍之后,总算有些心得: 先说说虚拟网络 ...

  6. 如何跨过Docker集群网络Weave遇到的“坑”?

    2019独角兽企业重金招聘Python工程师标准>>> 前 言 Weave作为Docker(一个开源的应用容器引擎)跨主机集群网络解决方案的一种,可以用于连接部署在多台主机上的Doc ...

  7. 使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)

    使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N) 借助Docker和OpenVPN技术,您可以在短时间内设置并运行VPN服务器,并保证您的服务器安全. 运行环境 ...

  8. 容器编排技术 -- 在Azure上使用CoreOS和Weave的 Kubernetes

    容器编排技术 -- 在Azure上使用CoreOS和Weave的 Kubernetes 介绍 在本指南中我将演示如何在Azure云端部署Kubernetes集群.您将使用CoreOS与Weave,We ...

  9. Docker的4种网络模式

    我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定. container模式,使 ...

最新文章

  1. 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)
  2. PingingLab传世经典系列《CCNA完全配置宝典》-5.8 静态NAT
  3. 在win10系统中安装Visual C++ 6.0的具体方法
  4. 张平文院士:展示计算数学的魅力
  5. 苹果cms V8模板 黑色自适应电影模板
  6. vidalia 更换浏览器代理
  7. 你还在烦U盘记录该如何消除吗
  8. Anaconda 安装 OpenCV 遇到的问题
  9. 【快速文档】view标签,小程序中的div
  10. 大数据产品推荐:Stratifyd大数据智能分析平台
  11. ogre研究之第一个程序
  12. 基础30讲 第11讲 多元函数微分学
  13. 【云服务器 ECS 实战】专有网络 VPC、弹性网卡的概述与配置
  14. 小米Java笔试_JAVA后端笔试试题(一)
  15. mac和windows下载安装redis
  16. 高新技术企业的八大领域及要点
  17. The Old Man and The Sea 老人与海 by Ernest Hemingway 欧内斯特-海明威
  18. 神州数码DCFW-1800系列防火墙设备密码与配置恢复方法
  19. 数据结构系列之平衡二叉树
  20. CRMEB小程序生成小程序码显示发布小程序才可以获取小程序码解决办法

热门文章

  1. Javascript字符串的格式化
  2. [置顶]       设计模式之创建类模式——原型模式
  3. poj 2777 Count Color
  4. 如何在Objective C中声明Block?
  5. IOS 开发之-- textfield和textview,return键的改变,点击return键
  6. 易邮邮箱服务器的安装和配置
  7. SSL/TLS算法流程解析
  8. 前端开发之走进Vue.js
  9. 修改项目名称后,部署到tomcat问题
  10. Squid部署文档一