容器中跨主机的网络方案-Weave
容器中的网络是建立docker集群的重要内容。
本文将介绍如何用Weave实现容器的多节点互通。
Weave是一个开源的项目,其网站为:
https://www.weave.works/
其工作原理相当比较简单,每个Docke的node和其他Docker的node建立peer的关系,如下图:

在每个Node上,创建Weave的Router,由Weave Router转发容器间的流量,如下图:

安装过程相对比较简单:
一 安装docker
在需要运行docker的node中安装docker软件
yum install docker -y
echo '{"registry-mirrors": ["registry.docker-cn.com"]}' > /etc/docker/daemon.json
systemctl enable docker
systemctl start docker
二 在节点上安装Weave
sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weave
三 运行Weave
1 在第一个node上运行
curl -L git.io/weave -o /usr/local/bin/weave
eval $(weave env)
weave launch
docker run -d --name w1 nginx
此时可以看到容器的情况:

查看Bridge的情况:

进入容器内部,查看网络情况:

容器内有两个网络接口,eth0是网桥docker0的IP地址,ethwe是网桥Weave的地址。查看路由情况:

可以看到,10.32.0.0/12的Weave网段的路由指向ethwe,默认路由指向eth0。
2 在第二个node上运行
curl -L git.io/weave -o /usr/local/bin/weave
eval $(weave env)
weave launch 10.1.1.6
docker run -d --name w3 nginx
可以看到与node1不同的是在weave launch后加入了node1的IP地址,node2与node1建立了peer。
或者在weave connect 10.1.1.6的方式实现。
进入到容器内查看,也是两个网络接口:

查看路由:

查看联通性:

可以ping通。检查外网:

也可以ping通。
总结:
Weave网络是支持docker不同节点间容器互通的技术,实施简单,拓扑结构也非常清楚。是Docker环境中推荐的部署模式。
容器中跨主机的网络方案-Weave的更多相关文章
- 容器中跨主机的网络方案-Calico
容器中的网络是建立docker集群的重要内容. 本文将介绍如何用Calico实现容器的多节点互通. Calico的组件结构如下: Calico通过etcd同步Bridge的信息,各个Docker no ...
- 容器中跨主机的网络方案-flannel
容器中的网络是建立docker集群的重要内容. 本文将介绍如何用flannel实现容器的多节点互通. 下图是flannel的实现原理,摘自: http://docker-k8s-lab.readthe ...
- Docker系列04—跨主机网络方案(overlay/weave)
在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docke ...
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Docker 跨主机网络方案分析
PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...
- centos7下安装docker(15.7容器跨主机网络---calico)
Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来.与vxlan不同的是:calico不对数据包进行封装,不需要NA ...
- k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)
网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...
- [Kubernetes]谈谈容器跨主机网络
继上篇文章:[Kubernetes]浅谈容器网络,自己给自己挖的坑,这篇文章来谈谈容器跨主机网络. 要理解容器"跨主通信"的原理,就要来谈谈 Flannel 这个项目. Flann ...
- docker 现实---联网多台物理主机,容器桥到物理网络(三)
docker 默认桥接卡docker0 只有当这个单元中的所有容器桥接卡.例如,在主机虚拟网络适配器容器看通常称为veth*** 和docker只要把这些卡桥接在一起,例如下面的附图: waterm ...
随机推荐
- IT行业的一些专业术语
SDK:SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 参考:h ...
- tyvj 1059 过河 dp
P1059 过河 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005 提高组 第二道 描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳 ...
- Scala- Double类型工具类
格式化分数,按照指定小数位四舍五入工具类 package com.rz.util object NumberUtils { /** * 格式化小数 * @param num Double对象 * @p ...
- mysql:字符分割,将字符分割成数组
1.分割函数:SUBSTRING_INDEX('浙江温州-中国电信','-','1') 2.用例(筛选'-'前至少4个汉字的数据) a.数据分布 b.筛选sql select t.mobile_n ...
- python面向对象编程学习
python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...
- 广义线性模型(GLM)
一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...
- tomcat映射物理路径
<Context path="/woyoubaoweb/upload" docBase="/opt/file/image/woyoubaoweb/upload&qu ...
- L126
Like so many things, it is not what's outside, but what is inside that counts. 许多事物都是如此,外表看起來虽不起眼,但是 ...
- Django 使用 内置 content-type
django内置的content-type组件, 记录了项目中所有model元数据的表 可以通过一个ContentType表的id和一个具体表中的id找到任何记录,及先通过ContenType表的id ...
- Wordpress在主题或者插件中自定义存储附件的方法
1.前端使用form表单 //单文件上传,我的业务需求中限制了必须上传图片 <input type="file" name="singlename" ac ...