http://www.fly63.com/article/detial/1738

VXLAN是Linux内核本身支持的一种网络虚拟化技术,是内核的一个模块,在内核态实现封装解封装,构建出覆盖网络,其实就是一个由各宿主机上的Flannel.1设备组成的虚拟二层网络。

由于VXLAN由于额外的封包解包,导致其性能较差,所以Flannel就有了host-gw模式,即把宿主机当作网关,除了本地路由之外没有额外开销,性能和calico差不多,由于没有叠加来实现报文转发,这样会导致路由表庞大。因为一个节点对应一个网络,也就对应一条路由条目。

host-gw虽然VXLAN网络性能要强很多。,但是种方式有个缺陷:要求各物理节点必须在同一个二层网络中。
物理节点必须在同一网段中。这样会使得一个网段中的主机量会非常多,万一发一个广播报文就会产生干扰。
在私有云场景下,宿主机不在同一网段是很常见的状态,所以就不能使用host-gw了。

VXLAN还有另外一种功能,VXLAN也支持类似host-gw的玩法,如果两个节点在同一网段时使用host-gw通信,如果不在同一网段中,即 当前pod所在节点与目标pod所在节点中间有路由器,就使用VXLAN这种方式,使用叠加网络。
结合了Host-gw和VXLAN,这就是VXLAN的Directrouting模式

因此Flnnel的VXLAN模式有两种:

  1. VXLAN: 原生的VXLAN,即扩展的虚拟LAN
  2. Directrouting:直接路由型

Flannel VXLAN之Directrouting模式配置

修改下载的kube-flannel.yml,将flannel的configmap对象改为:

net-conf.json: |
    {
      "Network": "10.244.0.0/16",  #默认网段
      "Backend": {
        "Type": "VXLAN",
        "Directrouting": true  #增加
      }
    }

然后把原来的flannel删除,再重新apply:

最新文章

  1. Socket支持多用户并发访问的解决办法
  2. 将PostGIS转化为GeoJSON
  3. poj 1085 Triangle War 博弈论+记忆化搜索
  4. Angularjs 中使用指令绑定点击事件
  5. ReplicaManager之DelayedOperation
  6. Java transient、Volatile关键字
  7. App - 版本控制
  8. oracle 零散知识汇集
  9. yii2发送邮件(配置QQ版本)
  10. width和max-width的用处
  11. java操作elasticsearch实现聚合查询
  12. MySQL 命令(导出数据):mysqldump
  13. 【转载】ssh-keygen 基本用法
  14. Python的符号、对齐和用0填充
  15. python迭代器概念与应用
  16. SVN同步
  17. InterView之PHP(2)
  18. 【Linux】war包的解压与压缩
  19. OAuth 白话简明教程 5.其他模式
  20. h5移动端百分比

热门文章

  1. 【转】MySQL用户管理及SQL语句详解
  2. less/sass 基础base文件
  3. hibernate映射关系(多对多)
  4. webservice:com.sun.xml.internal.ws.server.ServerRtException: [failed to localize]
  5. spring中BeanFactory和FactoryBean的区别
  6. Codeforces 671D Roads in Yusland [树形DP,线段树合并]
  7. 【翻译】关于vertical-align所有你需要知道的
  8. 注册InstallShield
  9. 在DOS中操作MySQL数据库出现中文乱码
  10. 细说Django的中间件