如何使用 flannel host-gw backend?- 每天5分钟玩转 Docker 容器技术(62)

简介: flannel 支持多种 backend,前面我们讨论的是 vxlan,host-gw 是 flannel 的另一个 backend,本节会将前面的 vxlan backend 切换成 host-gw。

flannel 支持多种 backend,前面我们讨论的是 vxlan,host-gw 是 flannel 的另一个 backend,本节会将前面的 vxlan backend 切换成 host-gw。

与 vxlan 不同,host-gw 不会封装数据包,而是在主机的路由表中创建到其他主机 subnet 的路由条目,从而实现容器跨主机通信。要使用 host-gw 首先修改 flannel 的配置 flannel-config.json:

{

 "Network": "10.2.0.0/16",

 "SubnetLen": 24,

 "Backend": {

   "Type": "host-gw"

 }

}

Type 用 host-gw 替换原先的 vxlan。更新 etcd 数据库:

etcdctl --endpoints=192.168.56.101:2379 set /docker-test/network/config < flannel-config.json

 

Ctrl+C 掉之前 host1 和 host2 的 flanneld 进程并重启。

flanneld -etcd-endpoints=http://192.168.56.101:2379 -iface=enp0s8 -etcd-prefix=/docker-test/network

 

host1 上 flanneld 启动输出如下:

与之前 vxlan backend 启动时有几点不同:

① flanneld 检查到原先已分配的 subnet 10.2.40.0/24,重用之。

② flanneld 从 etcd 数据库中检索到 host2 的 subnet 10.2.17.0/24,但因为其 type=vxlan,立即忽略。

③ 两分钟后,再次发现 subnet 10.2.17.0/24,将其加到路由表中。这次没有忽略 subnet 的原因是此时我们在 host2 上重启了 flanneld,根据当前 etcd 的配置使用 host-gw backend。

查看 host1 的路由表,增加了一条到 10.2.17.0/24 的路由,网关为 host2 的 IP 192.168.56.105。

类似的,host2 启动 flanneld 时会重用 subnet 10.2.17.0/24,并将 host1 的 subnet 10.2.40.0/24 添加到路由表中,网关为 host1 IP 192.168.56.104。

从 /run/flannel/subnet.env 可以看到 host-gw 使用的 MTU 为 1500:

这与 vxlan MTU=1450 不同,所以应该修改 docker 启动参数 --mtu=1500并重启 docker daemon。

下面对 host-gw 和 vxlan 这两种 backend 做个简单比较。

  1. host-gw 把每个主机都配置成网关,主机知道其他主机的 subnet 和转发地址。vxlan 则在主机间建立隧道,不同主机的容器都在一个大的网段内(比如 10.2.0.0/16)。

  2. 虽然 vxlan 与 host-gw 使用不同的机制建立主机之间连接,但对于容器则无需任何改变,bbox1 仍然可以与 bbox2 通信。

  3. 由于 vxlan 需要对数据进行额外打包和拆包,性能会稍逊于 host-gw。

至此 flannel 已经讨论完了,下一节我们开始学习另一个网络方案:Weave。

二维码+指纹.png

目录
相关文章
|
开发工具
Harbor安装及解决https重定向回http问题
Harbor安装及解决https重定向回http问题
1840 0
|
2月前
|
人工智能 数据可视化 安全
Qoderian 来了:让 Qoder CLI 住进你的 Obsidian 知识库
Qoderian 是一款开源 Obsidian 插件,让 Qoder CLI 直接在知识库内运行,无需切终端。支持网页剪藏自动提炼、归类总结、生成思维导图与手绘风格流程图(配合 Excalidraw),大幅提升信息整理效率。MIT 协议,免费易用。
456 0
|
网络协议 Linux
route 或 ip route命令详解
【4月更文挑战第9天】`route`和`ip route`是Linux下管理IP路由的命令,用于查看和配置路由表。`route`命令简单,可查看、添加和删除路由,而`ip route`更现代且功能强大,支持路由可信度和距离设置。`ip route show`类似于`route -n`用于显示路由信息。路由类型包括主机、网络和默认路由。在现代Linux系统中,推荐使用`ip route`。
3462 1
|
前端开发 Java 关系型数据库
最好用的七大顶级 API 接口测试工具
现在 API 接口已经成为软件开发重要的组成部分,由于 API 并没有 GUI 图形界面,无法直观的对接口进行测试,所以对于前后端开发来说,找到一套趁手的工具对 API 接口进行测试,了解开发的程序是否符合预期十分重要。面对批量的 API,手动测试变得非常低效,自动化 API 接口测试工具,帮我们提高测试效率的同时,更能帮我们保证程序的稳定和安全性。
4777 0
最好用的七大顶级 API 接口测试工具
|
Ubuntu Linux
几种Linux系统切换内核启动顺序方法
几种Linux系统切换内核启动顺序方法
|
存储 安全 网络协议
使用 firewall-cmd 管理 Linux 防火墙端口
本文将介绍如何使用 firewall-cmd 工具在 Linux 系统中进行简单端口管理,包括开放、查询、关闭等操作。通过实例展示相关命令的用法,希望能对大家有所帮助。
1734 0
|
5月前
|
消息中间件 网络协议 测试技术
socket长连接在手游场景下的技术实践
本文介绍了37手游基于B站goim框架自研长连接系统的实践。系统采用分层设计,支持多协议和发布/订阅机制,用于直播弹幕、实时推送等场景,实现了高性能与业务适配。
312 4
socket长连接在手游场景下的技术实践
|
12月前
|
数据采集 运维 安全
HTTPS代理企业级出站Web访问与数据采集的安全可运营基座
面向企业出站Web访问与数据采集,HTTPS代理以CONNECT隧道+端到端TLS构建加密边界,结合Socks5分层策略,依托全球8000万+住宅IP与高可用托管网络,实现可治理、可审计、低延迟、高并发的跨境流量调度,支持精细化策略控制与SLA保障,合规高效。
|
数据采集 供应链 前端开发
如何开发供应商管理系统中的绩效管理板块(附架构图+流程图+代码参考)
在现代企业管理中,供应商绩效评估对提升供应链效率、保障产品质量和优化成本结构至关重要。本文详细介绍了如何开发供应商管理系统中的绩效管理模块,涵盖功能设计、业务流程、开发技巧及代码实现,帮助企业构建高效、可扩展的绩效评估系统,提升供应链管理水平。
基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)
基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)