如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射. 除此之外,weave 的 DNS 模块使容器可以通过 hostname 访问. 实验环境描述 weave 不依赖分布式数据库(例如 etcd 和 consul)交换网络信息,每个主机上只需运行 weave 组件就能…
Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也可以加密传输.Weave Net创建一个连接多个Docker主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到这上面,互相通信.Weave Net由多个peer组成,Weave路由器运行不同Docker主机上,是一个用户空间的进程:每个peer都有一个名称,重启保持不变.它们通过TCP连接彼此,建立后交换拓扑信息.Weave Net可以在具有编号拓扑的部分连接的网络中路由数据包.例如,在…
Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Overaly Macvaln Flannel Weave Calico 根据不同场景选择最合适的方案: 网络模型 采用何种网络模型支持 multi-host 网络? Distributed Store 是否需要 etcd 或 consul 这类分布式 key-value 数据库存储网络信息? IPMA 如…
相同calico 网络之间的连通性 测试一下 bbox1 与 bbox2 的连通性: ping 成功,数据包流向如下图所示. 1)根据 bbox1 的路由表,将数据包从 cal0 发出. 2)数据经过 veth pair 到达 host1,查看路由表,数据由 ens192 发给 host2(10.12.31.23). 192.168.183.64/26 via 10.12.31.23 dev ens192  proto bird 3)host2 收到数据包,根据路由表发送给 cali95e23c…
Weave 与外网通信 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离. 外部网络如果要访问到 weave 中的容器:1.首先将主机加入到 weave 网络.2.然后把主机当作访问 weave 网络的网关. 要将主机加入到 weave,执行 weave expose. 这个 IP 10.32.0.3 会被配置到 host1 的 weave 网桥上. 现在 host1 的网络结构: weave 网桥位于 root namespace,它负责将容器接入 weave 网络. 给 wea…
首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 weave 网络. 运行容器 bbox3: eval $(weave env) docker run --name bbox3 -itd busybox weave 网络连通性 bbox3 能够直接 ping bbox1 和 bbox2. bbox1.bbox2 和 bbox3 的 IP 分别为 10.…
Weave 网络结构分析 在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 -itd busybox 首先执行 eval $(weave env) 很重要,其作用是将后续的 docker 命令发给 weave proxy 处理. 如果要恢复之前的环境,可执行 eval $(weave env --restore). 查看一下当前容器 bbox1 的网络配置: bbox1 有两个网络接口 eth0 和 ethwe,其中 e…
准备 macvlan 环境 macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置自己的 IP. macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络. macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge,而是直接通过以太 interface 连接到物理网络. 创建一个 macvlan 网…
单个host上的容器的网络:通过本章的学习,我们知道docker默认有三种网络,可以通过docker network ls查看: none:封闭的网络,通过--network=none来指定: host:将host主机上面的网络完全映射到容器中: bridge:桥接网络,默认情况下容器使用的是bridge,并将容器网络桥接到docker0上:可以通过brctl show查看桥接情况 我们可以创建user-defined网络,user-defined也分为三种:bridge,overlay,mac…
第七章 容器   时间:2017年4月27日15:08:30 章节:07章01节~07章04节 视频长度:20:21 +12:38 +3:55 +2:57 内容:容器API 心得: Java API 所提供的一系列类的实例,用于在程序中存放对象 JDK所提供的容器API 位于java.util包内 结构如下图     一个关于new 集合的问题 Collection c =new ArrayList(); 这是父类指向子类对象 不能访问arraylist里面所独有的 好处是 如果以后如果要变更数…