【转】flannel网络的VXLAN及host-gw
2024-10-10 23:13:18
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模式有两种:
- VXLAN: 原生的VXLAN,即扩展的虚拟LAN
- 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:
最新文章
- Socket支持多用户并发访问的解决办法
- 将PostGIS转化为GeoJSON
- poj 1085 Triangle War 博弈论+记忆化搜索
- Angularjs 中使用指令绑定点击事件
- ReplicaManager之DelayedOperation
- Java transient、Volatile关键字
- App - 版本控制
- oracle 零散知识汇集
- yii2发送邮件(配置QQ版本)
- width和max-width的用处
- java操作elasticsearch实现聚合查询
- MySQL 命令(导出数据):mysqldump
- 【转载】ssh-keygen 基本用法
- Python的符号、对齐和用0填充
- python迭代器概念与应用
- SVN同步
- InterView之PHP(2)
- 【Linux】war包的解压与压缩
- OAuth 白话简明教程 5.其他模式
- h5移动端百分比
热门文章
- 【转】MySQL用户管理及SQL语句详解
- less/sass 基础base文件
- hibernate映射关系(多对多)
- webservice:com.sun.xml.internal.ws.server.ServerRtException: [failed to localize]
- spring中BeanFactory和FactoryBean的区别
- Codeforces 671D Roads in Yusland [树形DP,线段树合并]
- 【翻译】关于vertical-align所有你需要知道的
- 注册InstallShield
- 在DOS中操作MySQL数据库出现中文乱码
- 细说Django的中间件