首页
视频
资源
登录
原
Flannel HOST-GW模式
2909
人阅读
2022/12/7 17:26
总访问:
2591651
评论:
0
收藏:
0
手机
分类:
容器编排
![](https://img.tnblog.net/arcimg/hb/a7b81907f2e249d0a1ca79b4c0726515.png) ># Flannel HOST-GW模式 [TOC] tn2>在讲Flannel HOST-GW模式之前我们可以先来看看静态路由。 ## 静态路由 tn2>简单讲:网络管理员在路由器上手动配置的路由条目;当网络拓扑改变时,需要让管理员手动的更新路由条目;路由过程必须根据管理员的配置转发。 当我们以主机为路由的时候,我们可以通过docker来实现linux下的静态路由。 ![](https://img.tnblog.net/arcimg/hb/998f1e4148cf47f1b95c79673f632364.png) tn>主机k8s-1下,我们首先自定义一个Linux Bridge,并设置网段为`172.19.0.0/16`取名名为`br_net19`;然后创建一个c1容器并连接到我们的`br_net19`网桥中。最后添加`172.18.0.0/16`网络的路由指向k8s-2节点中ip为`10.211.55.12`。 命令如下所示: ```bash docker network create -d bridge --subnet 172.19.0.0/16 br_net19 docker network list docker run --name c1 --network br_net19 -td burlyluo/nettoolbox docker ps -a docker exec -it c1 ifconfig docker exec -it c1 route -n ifconfig route -n # docker exec -it c1 ping 172.18.0.2 # route add -net 172.18.0.0/16 gw <节点二ip> # 添加静态路由 route add -net 172.18.0.0/16 gw 10.211.55.12 ``` tn2>大致如节点一的操作 ```bash docker network create -d bridge --subnet 172.18.0.0/16 br_net18 docker network list docker run --name c2 --network br_net18 -td burlyluo/nettoolbox docker ps -a docker exec -it c2 ifconfig docker exec -it c2 route -n ifconfig route -n # route add -net 172.19.0.0/16 gw <节点一ip> # 添加静态路由 route add -net 172.19.0.0/16 gw 10.211.55.11 route -n ``` ![](https://img.tnblog.net/arcimg/hb/cb4de0f0f16143aeba42c87ee18bb572.png) tn2>尝试ping,是没什么问题的。 ![](https://img.tnblog.net/arcimg/hb/49533502cbd44e23b284b8683a735831.png) ## Flannel HOST-GW模式 tn2>与静态路由是一样的,唯一不同的就是添加静态路由的时候,由 `flanneld` 负责了设置各个节点上的路由。 ![](https://img.tnblog.net/arcimg/hb/abb862ff82f942928d813192c2db9dbb.png) tn2>那么我们应该如何进行安装呢? 只需要将`net-conf.json`文件的网络类型更改为`host-gw`模式即可。 ```bash wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml vim kube-flannel.yml # net-conf.json: | # { # "Network": "10.244.0.0/16", # "Backend": { # "Type": "host-gw" # } # } kubectl apply -f kube-flannel.yml ``` tn2>由于走的是二层,所以不需要进行封包,性能也就提高了。但是HOST-GW模式只支持宿主机之间二层连接,要求集群中所以节点必须处于同一个网络中。如果不在一个网络中,三层设备路由器缺少Pod 网络的路由规则,无法转发数据包。<br/> HOST-GW模式将目的主机当作网关,直接路由原始的数据包。flanneld会在集群节点上创建并维护路由表,当数据包到达集群节点的时,就会根据路由表直接发送到下一跳,也就是同网段的节点IP,直接通过二层网络将数据转发到目的节点上;目的节点再根据路由表规则转发到cni网桥,网桥根据路由规则转发到容器里面。<br/> HOST-GW模式通过路由转发实现高性能网络通信,但是这种模式局限性很大,节点之间都要相互有点对点的路由覆盖,每个节点上有n-1个路由,而n个节点共有n(n-1)/2个路由,才能保证flannel的flat网络能力。 ## 小结 tn2>Host-GW特点: -- 直接路由转发,性能损失很小 -- 对宿主机网络要求二层可达 -- 如果主机数量多了起来导致泛洪
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
168篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
2篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术