Weave 与外网通信

weave 是一个私有的 VxLAN 网络,默认与外部网络隔离。

外部网络如果要访问到 weave 中的容器:1、首先将主机加入到 weave 网络。2、然后把主机当作访问 weave 网络的网关。

要将主机加入到 weave,执行 weave expose。

这个 IP 10.32.0.3 会被配置到 host1 的 weave 网桥上。

现在 host1 的网络结构:

weave 网桥位于 root namespace,它负责将容器接入 weave 网络。

给 weave 配置同一 subnet 的 IP 其本质就是将 host1 接入 weave 网络。

host1 现在已经可以直接与同一 weave 网络中的容器通信了,无论容器是否位于 host1。

在 host1 中 ping 同一主机的 bbox1:

ping host2 上的 bbox3:

接下来要让其他非 weave 主机访问到 bbox1 和 bbox3,只需将网关指向 host1。例如在 10.12.31.21 上添加如下路由:

ip route add 10.32.0.0/12 via 10.12.31.22

能够 ping 到 weave 中的容器了。

容器通过访问外网:容器本身就挂在默认的 bridge 网络上,docker0 已经实现了 NAT,所以容器无需额外配置就能访问外网。

IPAM

10.32.0.0/12 是 weave 网络使用的默认 subnet,如果此地址空间与现有 IP 冲突,可以通过 --ipalloc-range 分配特定的 subnet。

weave launch --ipalloc-range 10.2.0.0/16

不过请确保所有 host 都使用相同的 subnet。

-------------------------------------------------引用来自-----------------------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587843&idx=1&sn=860bc5b0b053f9b677ec928916871a37&chksm=8d30819aba47088c18d5603d1f90bfd31d7ce04018b30260b66126752f5fbc327716e5ad7ea3&scene=21#wechat_redirect

最新文章

  1. (总结)隐藏PHP版本与PHP基本安全设置
  2. C# interface abstract class
  3. 关于【error C3646: 未知重写说明符】的若干种可能性
  4. [moka同学笔记]MySql语句整理
  5. apache+php+mysql的配置(转载)
  6. 怎样分析java线程堆栈日志
  7. Unity User Group 北京站图文报道:《Unity3D VR游戏与应用开发》
  8. gtk程序如何进行编译
  9. Southwestern Europe Regional Contest 2014 题解
  10. Machine Learning &&Deep Learning&&Sklearn
  11. (详细)华为V9 DUK-AL20的usb调试模式在哪里打开的方法
  12. vue+富文本编辑器UEditor
  13. JSP页面分页显示数据
  14. Pandas分组
  15. [UWP 自定义控件]了解模板化控件(3):实现HeaderedContentControl
  16. D - Replace To Make Regular Bracket Sequence
  17. docker+mysql基本搭建过程
  18. vi编辑器的常用命令
  19. SpringBoot开发案例之整合Kafka实现消息队列
  20. mac下svn无法上传.a文件的问题

热门文章

  1. RNN Train和Test Mismatch
  2. el表达式(一)
  3. 测试Oracle统计信息的导出导入
  4. laravel----------php7.0.12 laravel 链接sqlserver数据库
  5. python模块的学习
  6. 安装caffe-ssd或者caffe时make all,make pycaffe,make test运行慢的问题
  7. halcon脱离hdvp运行
  8. vuejs服务端渲染更好的SEO,SSR完全指南Nuxt.js静态站生成器
  9. TCP/IP协议详解内容总结(怒喷一口老血)
  10. 使用go语言数据库