上一节我们安装并创建了 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,其中 eth0 连接的是默认 bridge 网络,即网桥 docker0。

现在我们重点分析 ethwe。从命名和分配的 IP 10.32.0.1/12 可以猜测 ethwe 与 weave 相关,ethwe@if77 告诉我们与 ethwe 对应的是编号 77 的 interface。从 host1 的 ip link 命令输出中找到该 interface:

vethwepl22809 与 ethwe 是一对 veth pair,而且 vethwepl22809 挂在 host1 的 Linux bridge weave 上。

除了 vethwepl22809,weave 上还挂了一个 vethwe-bridge,这是什么?让我们更深入的分析一下,查看 ip -d link 输出:

这里出现了多个新 interface:

① vethwe-bridge 与 vethwe-datapath 是 veth pair。

② vethwe-datapath 的父设备(master)是 datapath

③ datapath 是一个 openvswitch。

④ vxlan-6784 是 vxlan interface,其 master 也是 datapath,weave 主机间是通过 VxLAN 通信的。

host1 的网络结构如下图所示:

weave 网络包含两个虚拟交换机:Linux bridge weave 和 Open vSwitch datapath,veth pair vethwe-bridge 和 vethwe-datapath 将二者连接在一起。weave 和 datapath 分工不同,weave 负责将容器接入 weave 网络,datapath 负责在主机间 VxLAN 隧道中并收发数据。

再运行一个容器 bbox2。

docker run --name bbox2 -itd busybox

weave DNS 为容器创建了默认域名 weave.local,bbox1 能够直接通过 hostname 与 bbox2 通信。

当前 host1 网络结构为:

host1 已准备就绪,下一节部署 host2 并讨论 Weave 的连通与隔离特性。

转载于:https://www.cnblogs.com/CloudMan6/p/7482035.html

Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)相关推荐

  1. 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)

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

  2. k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

    网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...

  3. 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33)

    除了 none, host, bridge 这三个自动创建的网络,用户也可以根据业务需要创建 user-defined 网络. Docker 提供三种 user-defined 网络驱动:bridge ...

  4. Weave Scope 容器地图 - 每天5分钟玩转 Docker 容器技术(80)

    Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解.监控和控制容器.千言万语不及一张图,先感受一下. 下面开始实践 Weave Scope. 安装 执行如 ...

  5. 17、《每天5分钟玩转Docker容器技术》学习--Multi-host网络

    ------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习, ...

  6. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

  7. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)

    微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...

  8. 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)

    为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...

  9. 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)

    前面我们已经学习了如何部署 service,也验证了 swarm 的 failover 特性.不过截止到现在,有一个重要问题还没有涉及:如何访问 service?这就是本节要讨论的问题. 为了便于分析 ...

  10. 部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)

    上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署. 安装 Pod 网络 要 ...

最新文章

  1. 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
  2. Rational rose的安装
  3. 登录方式1:MySQL自带客户端
  4. 【JavaScript】数组
  5. java换水_java-交流灌水之谁是水王?
  6. P3811-[模板]乘法逆元【线性求逆元】
  7. uva 10570—— Meeting with Aliens
  8. 转账为demo,spring事务
  9. 线程调度优先级和关联性
  10. 机器学习降维算法三:LLE (Locally Linear Embedding) 局部线性嵌入
  11. 实现类的构造函数,析构函数和赋值函数
  12. delphi对比易语言_delphi 2007 vs E语言 vs C#运行速度 - Delphi编程
  13. 项目IDEA启动配置
  14. HTML5基于flash实现播放RTMP协议视频
  15. Protel 格式网表转换 Allegro 格式网表的 Skill 程序
  16. windows服务器登录记录查看
  17. 新手如何从零开始学习Unity3D,这边文章就够了!
  18. 当系统logoff或shutdown时,让应用程序正常关闭
  19. csr867x入门之spp使用(七)
  20. Spring cloud alibaba--Feign微服务调用组件

热门文章

  1. 多臂老虎机导论(一)引言
  2. MATLAB中的corrcoef函数求两个向量的相关系数。
  3. SpringCloud-Config通过Java访问URL对敏感词加密解密
  4. 【网络】半双工和全双工
  5. ajax同步时,loading加载不显示(谷歌浏览器)
  6. STM8L051F3基础功能:内部时钟;TIM2定时器;串口及printf;
  7. [转]适合过一辈子的人
  8. D. Magic Gems(矩阵快速幂 || 无敌杜教)
  9. solr(六): 集群
  10. node-7.2.1 already installed, it's just not linked